Cómo mpv Obtuvo una Interfaz Android Moderna con Jetpack Compose
Si alguna vez has intentado ver archivos de video pesados con subtítulos complejos en Android, probablemente te has encontrado con mpv-android. Su motor es versátil y rápido, ejecutando la biblioteca libmpv probada en batalla bajo el capó. Pero la interfaz del cliente clásico permaneció espartana durante mucho tiempo, como si estuviera atrapada en la era de Android 7.
最近,一个名为 mpvEx (mpvExtended) 的分支在 GitHub 上获得了关注。其开发者以 mpvKt 和 mpv-android 项目的代码库为基础,使用 Jetpack Compose 和 Material 3 Expressive 重写了界面,并添加了一系列日常观看的有用功能。
¿Por qué Otro Fork de mpv
El reproductor original es genial en su minimalismo, pero los usuarios móviles a menudo carecen de comodidad básica. En mpvEx, el autor se centró en tres cosas: preservar las capacidades de renderizado de libmpv, modernizar la interfaz de usuario y soporte adecuado para servidores domésticos.
La aplicación no tiene anuncios, rastreadores ni permisos innecesarios en el manifiesto. El código es completamente de código abierto bajo la licencia Apache 2.0.
Qué hace interesante al reproductor en la práctica
Protocolos de red integrados
Obtener archivos de video a través de la red local mediante administradores de archivos de terceros es inconveniente. mpvEx incluye soporte integrado para protocolos SMB, FTP y WebDAV. Puedes conectar un NAS doméstico o una unidad de enrutador directamente en el reproductor y abrir videos sin necesidad de descargarlos primero al almacenamiento interno del teléfono.
Navegación completa cuadro por cuadro
Para quienes analizan el video cuadro por cuadro o buscan un momento específico en una grabación, existe una interfaz dedicada de navegación cuadro por cuadro. Presiona un botón y avanza o retrocede sin retrasos de almacenamiento en búfer.
Manipulación flexible de medios
Junto con el familiar modo de imagen en imagen (PiP) y la reproducción de audio en segundo plano con la pantalla apagada, el reproductor puede:
- Adjuntar pistas de subtítulos externos y archivos de audio
- Escalar video con gestos de pellizco para hacer zoom
- Cambiar la vista del directorio entre árbol de carpetas y lista plana
- Gestionar listas de reproducción y navegación por capítulos
Bajo el capó
El proyecto está escrito en Kotlin con uso extensivo de Jetpack Compose. La integración con la capa nativa libmpv y las bibliotecas FFmpeg se implementa a través de JNI.
Construir la aplicación requiere JDK 17 y Android SDK con herramientas de compilación versión 34.0.0 o superior. El repositorio tiene una pipeline de GitHub Actions configurada que construye automáticamente APKs para diferentes arquitecturas:
arm64-v8apara smartphones modernosarmeabi-v7apara chips antiguos de 32 bitsx86yx86_64para emuladores y dispositivos poco comunes basados en Intel- Paquete universal
universalcon todas las bibliotecas incluidas
Si deseas compilar la aplicación desde el código fuente con tu propia firma, el repositorio describe el procedimiento para pasar claves a través de GitHub Secrets:
# Для Linux и macOS кодируем keystore в base64
base64 -i your-keystore.jks | tr -d '\n' > keystore.txt
En Windows PowerShell, esto utiliza el método .NET integrado:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("your-keystore.jks")) | Out-File -FilePath keystore.txt -NoNewline
Estado actual y conclusiones
El proyecto se está desarrollando activamente: el repositorio ya tiene más de 2400 estrellas, aunque hay aproximadamente 250 issues abiertos en el rastreador. El desarrollador advierte honestamente que pueden ocurrir errores en escenarios no estándar.
Si los reproductores estándar como VLC te parecen sobrecargados, y mpv-android simple te desanima con su diseño anticuado, mpvEx será una excelente alternativa. Puedes probar las compilaciones listas para usar desde la página de releases en GitHub o a través del catálogo IzzyOnDroid. Para los desarrolladores de Android, el repositorio también servirá como un buen ejemplo de cómo envolver una biblioteca pesada de C/C++ en una interfaz moderna de Compose.
Proyectos relacionados