>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Kotlin

Wie mpv eine moderne Android-Oberfläche mit Jetpack Compose erhielt

banner

Wenn Sie schon einmal versucht haben, schwere Videodateien mit komplexen Untertiteln auf Android anzusehen, sind Sie wahrscheinlich auf mpv-android gestoßen. Seine Engine ist vielseitig und schnell und verwendet die battle-getestete libmpv-Bibliothek unter der Haube. Aber die klassische Oberfläche des Clients blieb lange Zeit spartanisch, als wäre sie in der Android-7-Ära stecken geblieben.

kürzlich erlangte ein Fork namens mpvEx (mpvExtended) auf GitHub an Popularität. Sein Entwickler nahm die Codebasis der mpvKt- und mpv-Android-Projekte als Grundlage, schrieb die Oberfläche mit Jetpack Compose und Material 3 Expressive neu und fügte eine Reihe nützlicher Funktionen für den täglichen Gebrauch hinzu.

Warum noch ein mpv-Fork

Der Original-Player ist großartig in seinem Minimalismus, aber mobile Benutzer vermissen oft grundlegenden Komfort. In mpvEx konzentrierte sich der Autor auf drei Dinge: die Beibehaltung der Rendering-Fähigkeiten von libmpv, die Modernisierung der UI und die ordnungsgemäße Unterstützung für Heimserver.

Die App enthält keine Werbung, Tracker oder unnötige Berechtigungen im Manifest. Der Code ist vollständig Open Source unter der Apache-2.0-Lizenz.

Was den Player in der Praxis interessant macht

Netzwerkprotokolle serienmäßig

Videodateien über das lokale Netzwerk durch Dateimanager von Drittanbietern abzurufen, ist umständlich. mpvEx enthält integrierte Unterstützung für SMB-, FTP- und WebDAV-Protokolle. Sie können ein NAS oder ein Router-Laufwerk direkt im Player verbinden und Videos öffnen, ohne sie vorher auf den internen Speicher des Telefons herunterladen zu müssen.

Vollständige bildweise Navigation

Für diejenigen, die Videos Bild für Bild analysieren oder einen bestimmten Moment in einer Aufzeichnung suchen, gibt es eine dedizierte bildweise Navigationsoberfläche. Drücken Sie eine Taste und gehen Sie vorwärts oder rückwärts, ohne Verzögerungen durch Pufferung.

Flexible Medienverarbeitung

Neben dem vertrauten Bild-in-Bild-Modus (PiP) und der Audiowiedergabe im Hintergrund bei ausgeschaltetem Bildschirm kann der Player:

  • Externe Untertitelspuren und Audiodateien anhängen
  • Videos mit Pinch-to-Zoom-Gesten skalieren
  • Zwischen Ordnerbaum- und flacher Listenansicht wechseln
  • Wiedergabelisten und Kapitelnavigation verwalten

Unter der Haube

Das Projekt ist in Kotlin geschrieben und verwendet extensiv Jetpack Compose. Die Integration mit der nativen Schicht libmpv und den FFmpeg-Bibliotheken wird durch JNI implementiert.

Für den Build der App werden JDK 17 und Android SDK mit Build-Tools Version 34.0.0 oder neuer benötigt. Das Repository verfügt über eine konfigurierte GitHub-Actions-Pipeline, die automatisch APKs für verschiedene Architekturen erstellt:

  • arm64-v8a für moderne Smartphones
  • armeabi-v7a für alte 32-Bit-Chips
  • x86 und x86_64 für Emulatoren und seltene Intel-basierte Geräte
  • universal universelles Paket mit allen gebündelten Bibliotheken

Wenn Sie die App aus dem Quellcode mit Ihrer eigenen Signatur erstellen möchten, beschreibt das Repository das Verfahren zum Übergeben von Schlüsseln über GitHub Secrets:

# Для Linux и macOS кодируем keystore в base64
base64 -i your-keystore.jks | tr -d '\n' > keystore.txt

Auf Windows PowerShell wird dafür die integrierte .NET-Methode verwendet:

[Convert]::ToBase64String([IO.File]::ReadAllBytes("your-keystore.jks")) | Out-File -FilePath keystore.txt -NoNewline

Aktueller Stand und Fazit

Das Projekt entwickelt sich aktiv: Das Repository hat bereits über 24.000 Sterne, obwohl es etwa 250 offene Issues im Tracker gibt. Der Entwickler warnt ehrlich davor, dass in nicht standardmäßigen Szenarien Fehler auftreten können.

Wenn Ihnen Standard-Player wie VLC überladen vorkommen und das veraltete Design von mpv-android Sie abschreckt, ist mpvEx eine ausgezeichnete Alternative. Sie können fertige Builds von der Releases-Seite auf GitHub oder über den IzzyOnDroid-Katalog ausprobieren. Für Android-Entwickler dient das Repository außerdem als gutes Beispiel für das Einbinden einer schweren C/C++-Bibliothek in eine moderne Compose-UI.

Ähnliche Projekte