🚀 Release 3.0.4
Versión centrada en Canvas dinámico multi-proveedor, nuevo diseño del reproductor estilo Apple Music, widgets de pantalla de inicio y mejoras visuales inmersivas.
✨ Nuevas Funciones
🎨 Sistema Canvas Multi-Proveedor
Se reemplaza el antiguo sistema de Canvas por una arquitectura modular capaz de obtener fondos animados desde múltiples proveedores.
Nuevos proveedores soportados:
| Proveedor | Tecnología | Descripción |
|---|---|---|
| Apple Music | HLS | Extracción de vídeos animados mediante streams HLS |
| Tidal | MP4 | Obtención de vídeos mediante API pública |
| API interna | Fallback | Compatibilidad con fuentes existentes |
🖼️ Nueva arquitectura Canvas
El sistema Canvas ahora utiliza un modelo unificado y un resolvedor inteligente.
Archivos nuevos:
-
CanvasArtwork.kt- Nuevo modelo estándar para artwork animado horizontal/vertical.
-
CanvasArtworkResolver.kt- Sistema encargado de seleccionar automáticamente la mejor fuente.
-
AppleMusicCanvasProvider.kt- Extracción de Canvas desde Apple Music.
-
AppleMusicArtistBackgroundProvider.kt- Obtención de fondos animados para artistas.
-
TidalCanvasProvider.kt- Integración con vídeos MP4 de Tidal.
⚙️ Características del nuevo sistema Canvas
| Característica | Detalle |
|---|---|
| Multi-provider | Selección automática entre Apple Music, API y Tidal |
| Prioridad configurable | Orden inteligente de búsqueda |
| Validación avanzada | Comprueba artista, álbum y título antes de aceptar resultados |
| Normalización metadata | Limpieza de feat., "Official Video" y caracteres innecesarios |
| Cache LRU | Reduce consultas repetidas mediante memoria y disco |
| Soporte horizontal/vertical | Adaptación para distintos formatos de vídeo |
🎬 Fondos dinámicos para artistas
ArtistScreen ahora puede mostrar vídeos personalizados relacionados con el artista.
Características:
- Fondos animados detrás del contenido.
- Reproducción mediante
CanvasArtworkPlayer. - Zoom dinámico.
- Overlay translúcido para mantener legibilidad.
- Obtención automática basada en nombre del artista.
🎵 Nuevo diseño del reproductor V8 (Apple Music Style)
Se introduce una nueva variante del reproductor inspirada en Apple Music con diseño glassmorphism.
🌈 Player Design Style V8
Nuevo estilo disponible dentro de las preferencias de apariencia.
Características:
| Elemento | Descripción |
|---|---|
| Glass UI | Componentes translúcidos con blur y bordes |
| Backdrop dinámico | Fondo personalizado con degradados |
| Progress Track | Barra de progreso estilo vidrio |
| Volume Slider | Control integrado dentro del diseño |
| Next Up Preview | Vista previa de siguiente canción |
| Footer Apple Music Style | Controles inferiores renovados |
🆕 Nuevos componentes del reproductor
Archivos añadidos:
-
AppleDeviceSelector.kt- Selector de dispositivos de audio.
-
V8PlayerBackdrop- Fondo dinámico con blur y gradientes.
-
V8PlayerControlsContent- Controles principales del reproductor.
-
QueueCollapsedContentV8- Controles inferiores cuando la cola está colapsada.
-
GlassTrack- Componente reutilizable para barras con efecto vidrio.
🔊 Selector de dispositivos de audio
Nuevo selector para cambiar rápidamente la salida de audio.
Compatible con:
- Bluetooth.
- Altavoces internos.
- Dispositivos cableados.
Incluye:
- BottomSheet personalizado.
- Lista dinámica de dispositivos.
- Integración con AudioManager.
🏠 Widget de pantalla de inicio
Se añade un nuevo widget de reproducción usando Jetpack Glance.
📱 OpenTune Player Widget
Nuevo widget interactivo para controlar la reproducción directamente desde el launcher.
Funciones:
- Play/Pause.
- Siguiente canción.
- Canción anterior.
- Información del tema actual.
- Barra de progreso.
- Artwork dinámico.
🎨 Personalización del Widget
Nueva pantalla de configuración con vista previa en tiempo real.
Opciones disponibles:
| Opción | Descripción |
|---|---|
| Modo Blur | Fondo desenfocado usando RenderEffect (Android 12+) |
| Color dominante | Extrae color desde artwork usando Palette API |
| Color sólido | Fondo personalizado simple |
| Scrim | Ajuste de opacidad del overlay |
| Corner Radius | Personalización de esquinas |
| Progress Bar | Mostrar u ocultar progreso |
⚙️ Arquitectura del Widget
Nuevos archivos:
-
OpenTunePlayerWidget.kt- Implementación del widget Jetpack Glance.
-
OpenTunePlayerWidgetReceiver.kt- Receiver del widget.
-
PlayerWidgetUpdater.kt- Sincronización con reproducción.
-
PlayerWidgetState.kt- Estado y procesamiento de metadata.
-
WidgetSettings.kt- Configuración visual.
-
WidgetPreferences.kt- DataStore independiente del widget.
🔄 Integración con MusicService
El servicio de música ahora actualiza automáticamente el widget.
Actualizaciones al cambiar:
- Canción.
- Estado Play/Pause.
- Artwork.
- Progreso.
✨ Mejoras de Animaciones
Se agregan animaciones más naturales en controles del reproductor.
Mejoras:
- Spring animations.
- Escalado al interactuar.
- Mejor feedback táctil.
- Seguimiento mediante
interactionSource.
Aplicado a estilos existentes:
- V1
- V2
- V3
- V4
- V5
- V6
- V8
🎨 Recursos y Assets
Nuevos iconos y mejoras visuales:
Añadidos:
airplay.xmlspeaker.xmlfavorite_filled.xmlfavorite_outline.xml
Actualizados:
queue_music.xmllyrics.xml
🔧 Correcciones y Mantenimiento
| Área | Mejora |
|---|---|
| Canvas | Sustitución del sistema antiguo por arquitectura modular |
| Player | Mejor manejo de fondos animados |
| Metadata | Normalización mejorada para búsquedas |
| Cache | Reducción de llamadas repetidas mediante LRU |
| UI | Limpieza de imports y comentarios redundantes |
| Apple Music Provider | Tokens actualizados para mantener compatibilidad |
📦 Dependencias
| Dependencia | Uso |
|---|---|
androidx.glance:glance-appwidget |
Widgets de pantalla de inicio |
androidx.glance:glance-material3 |
Componentes Material 3 para widgets |
🌍 Localización
Nuevos textos añadidos:
- Configuración del widget.
- Modos de fondo.
- Opciones visuales.
- Selector de dispositivos.
- Apple Music style.
Idiomas afectados:
- Inglés.
- Español.
🧠 Refactor Interno
Canvas
Migración de:
OpenTuneCanvas
a:
CanvasArtwork
|
├── AppleMusicCanvasProvider
├── TidalCanvasProvider
└── API Provider
Estado del reproductor
Nuevo flujo:
MusicService
↓
PlayerWidgetUpdater
↓
PlayerWidgetState
↓
Jetpack Glance Widget
🔢 Versión
- versionCode:
131 - versionName:
3.0.4
💡 Una release enfocada en convertir OpenTune en una experiencia más cercana a un reproductor premium moderno: Canvas animado desde múltiples servicios, reproductor estilo Apple Music, widgets personalizados y una interfaz más inmersiva.
🔗 Full Changelog:
3.0.3...3.0.4