advanced_video_player 1.0.0
advanced_video_player: ^1.0.0 copied to clipboard
Un reproductor de video avanzado para Flutter con controles modernos, Picture-in-Picture, Google Cast, AirPlay y diseño personalizable.
1.0.0 - 2025-01-27 #
🎨 Vista Personalizada de Picture-in-Picture para iOS #
Esta versión introduce una vista personalizada que se muestra durante el modo Picture-in-Picture en iOS, similar al estilo de Disney+ y otras apps premium.
✨ Nuevas Características #
🖼️ Vista Personalizada de PiP en iOS
- ✅ Vista personalizada: Muestra icono y texto durante PiP en lugar de pantalla negra
- ✅ Diseño estilo Disney+: Icono de dos rectángulos superpuestos con texto descriptivo
- ✅ Animaciones suaves: Transiciones elegantes al mostrar/ocultar la vista
- ✅ Ocultación inteligente: Se oculta inmediatamente al salir del PiP sin parpadeos
- ✅ Texto en español: "Video reproduciéndose en imagen dentro de otra (PIP)."
🔧 Mejoras Técnicas
- ✅ Integración nativa: Funciona con ambos reproductores (tradicional y nativo)
- ✅ Sin impacto en rendimiento: Vista ligera que no afecta la reproducción
- ✅ Compatibilidad total: Funciona con todas las funcionalidades existentes
- ✅ Código limpio: Implementación modular y mantenible
🐛 Correcciones #
- ✅ Parpadeo en PiP: Eliminado el parpadeo al volver desde PiP
- ✅ Ocultación inmediata: La vista se oculta instantáneamente al detectar fin de PiP
- ✅ Vista negra en Android PiP: Eliminada la vista negra que se mostraba durante PiP en Android
- ✅ Reproductor encima del preview en Android: Corregido el problema donde el VideoPlayer se mostraba encima del preview/thumbnail
📱 Compatibilidad #
- iOS: 13.0+ (requerido para la vista personalizada)
- Android: Sin cambios (funcionalidad PiP existente)
- Flutter: >=1.17.0
- Dart: >=3.4.4
0.0.3 - 2025-10-09 #
🎯 Versión Release Estable #
Esta versión consolida todas las mejoras y optimizaciones, preparando el paquete para producción con documentación completa y código profesional.
✨ Nuevas Características #
🖼️ Preview/Thumbnail Personalizado
- ✅ Parámetro
previewImageUrl: Muestra una imagen de preview mientras el video carga - ✅ Mejora de UX: Los usuarios ven contenido inmediatamente, no una pantalla negra
- ✅ Opcional y configurable: Se puede omitir si no es necesario
- ✅ Soporte para URLs remotas: Compatible con cualquier imagen web
🎬 Reproductor Nativo iOS Mejorado
- ✅ Parámetro
useNativePlayerOnIOS: Usa reproductor nativo optimizado en iOS - ✅ Mejor PiP: Experiencia Picture-in-Picture mejorada sin dummy views
- ✅ Restauración automática: Navega a fullscreen cuando el usuario regresa desde PiP
- ✅ Múltiples instancias: Soporta varios reproductores independientes
📚 Documentación Profesional #
📝 Código Comentado
- ✅ Comentarios de nivel profesional: Toda la API está documentada con DartDoc
- ✅ Ejemplos mejorados: El ejemplo principal incluye comentarios explicativos detallados
- ✅ Estructura clara: Secciones bien delimitadas y organizadas
- ✅ Guías inline: Los comentarios explican el "por qué" además del "qué"
📖 README Actualizado
- ✅ Sección de preview/thumbnail: Documentación del nuevo parámetro
- ✅ Ejemplos actualizados: Todos los ejemplos incluyen las nuevas características
- ✅ Mejores explicaciones: Descripciones más claras y concisas
- ✅ Tabla de compatibilidad: Requisitos y versiones actualizadas
🔧 Mejoras Técnicas #
🎨 Experiencia de Usuario
- ✅ Carga visual mejorada: Preview images reduce la percepción de tiempo de carga
- ✅ Transiciones suaves: Animaciones optimizadas entre estados
- ✅ Feedback visual: Indicadores claros de estado de carga
🛠️ Optimizaciones de Código
- ✅ Manejo de errores robusto: Captura y gestión mejorada de excepciones
- ✅ Performance optimizada: Carga condicional de recursos
- ✅ Memoria eficiente: Mejor gestión del ciclo de vida de widgets
📦 Dependencias #
Todas las dependencias se mantienen actualizadas:
- ✅
video_player: ^2.9.5- Reproductor base optimizado - ✅
url_launcher: ^6.3.1- Lanzador de URLs actualizado - ✅
qr_flutter: ^4.1.0- Generación de códigos QR para compartir - ✅
flutter_lints: ^3.0.0- Análisis de código actualizado
🎯 Compatibilidad #
- ✅ Flutter: >= 1.17.0
- ✅ Dart: >= 3.4.4 < 4.0.0
- ✅ Android: API 21+ (Android 5.0+)
- ✅ iOS: 11.0+ (recomendado 15.0+ para mejor PiP)
📝 Notas de Migración #
Actualización desde 0.0.2
Esta versión es 100% compatible con versiones anteriores. No se requieren cambios obligatorios.
Nuevas características opcionales:
// Agregar preview image (opcional)
AdvancedVideoPlayer(
videoSource: 'https://example.com/video.mp4',
previewImageUrl: 'https://example.com/thumbnail.jpg', // 🆕 Nuevo
)
// Usar reproductor nativo en iOS (opcional)
AdvancedVideoPlayer(
videoSource: 'https://example.com/video.mp4',
useNativePlayerOnIOS: true, // 🆕 Nuevo (mejor PiP)
)
🐛 Correcciones #
- ✅ Manejo de estados mejorado: Transiciones más fluidas entre estados de carga
- ✅ Gestión de memoria: Mejor limpieza de recursos al hacer dispose
- ✅ Compatibilidad iOS: Mejor soporte para diferentes versiones de iOS
🎬 Ejemplo Actualizado #
El ejemplo principal (example/lib/main.dart) ahora incluye:
- ✅ Comentarios profesionales de nivel producción
- ✅ Documentación DartDoc completa
- ✅ Secciones claramente delimitadas
- ✅ Explicaciones detalladas de cada característica
- ✅ Guía de uso de todas las nuevas funcionalidades
🔗 Enlaces #
- Repositorio: https://github.com/pablomelobt/advanced_video_player.git
- Documentación: https://github.com/pablomelobt/advanced_video_player.git#readme
- Issues: https://github.com/pablomelobt/advanced_video_player/issues
- Ejemplo en vivo: Ver
example/lib/main.dart
0.0.2 - 2025-01-27 #
🚀 Mejoras de Calidad y Optimización #
Esta versión se enfoca en optimizar la calidad del código, documentación y dependencias para alcanzar el puntaje máximo en pub.dev (160/160 puntos).
✨ Mejoras Implementadas #
📚 Documentación Mejorada
- ✅ README.md completamente actualizado con documentación profesional
- ✅ Documentación de código mejorada en todos los archivos
- ✅ Ejemplos de uso detallados y completos
- ✅ Guías de configuración paso a paso para Android e iOS
- ✅ Solución de problemas comunes documentada
- ✅ API Reference completa con todos los parámetros
🔧 Optimizaciones de Código
- ✅ Análisis estático sin errores ni warnings (
flutter analyzelimpio) - ✅ Convenciones Dart mejoradas (super parameters, const constructors)
- ✅ Manejo de BuildContext optimizado para operaciones asíncronas
- ✅ Pruebas unitarias funcionando correctamente
- ✅ Manejo de timers mejorado en pruebas
📦 Dependencias Actualizadas
- ✅ video_player: Actualizado de
^2.8.1a^2.9.5 - ✅ url_launcher: Actualizado de
^6.2.2a^6.3.1 - ✅ flutter_lints: Actualizado a
^3.0.0(última versión) - ✅ Todas las dependencias verificadas y actualizadas
🎯 Nuevas Funcionalidades
- ✅ Reproductor Nativo iOS: Implementación optimizada sin dummy views
- ✅ NativeVideoPlayerController: Controlador mejorado para iOS
- ✅ Mejor manejo de PiP: Implementación más robusta
- ✅ Screen Sharing mejorado: Mejor compatibilidad con SharePlay y Google Cast
- ✅ Restauración Automática a Fullscreen: Cuando el usuario vuelve desde PiP, navega automáticamente a fullscreen (como Disney+, Netflix, YouTube)
- ✅ Event Callbacks PiP: Nuevos callbacks
onPipStarted,onPipStopped,onPipRestoreToFullscreen - ✅ EventChannel por Vista: Sistema de eventos mejorado con canales dedicados por cada instancia de PlayerView
🐛 Correcciones de Bugs
- ✅ Timer leaks en pruebas corregidos
- ✅ BuildContext issues resueltos
- ✅ Memory leaks prevenidos
- ✅ Async operations mejoradas
📊 Calidad del Código
- ✅ 0 errores de linter
- ✅ 0 warnings
- ✅ Código optimizado para performance
- ✅ Arquitectura limpia mantenida
- ✅ Manejo de errores robusto
🔄 Cambios Técnicos #
Archivos Modificados
lib/advanced_video_player.dart- Optimizaciones de códigolib/native_video_player.dart- Sistema de eventos PiP añadido, callbacksonPipStarted,onPipStopped,onPipRestoreToFullscreenlib/picture_in_picture_service.dart- Documentación completalib/screen_sharing_service.dart- Documentación y mejorasios/Classes/AdvancedVideoPlayerPlugin.swift- Restauración automática a fullscreen, EventChannel por vista, PlayerViewEventHandlertest/advanced_video_player_test.dart- Pruebas optimizadasexample/lib/native_player_example.dart- Ejemplo con navegación a fullscreen desde PiPdoc/pip-fullscreen-restoration.md- Nueva documentación sobre restauración automáticapubspec.yaml- Dependencias actualizadasREADME.md- Documentación completa con sección NativeVideoPlayer
Mejoras de Performance
- ✅ Inicialización más rápida del reproductor
- ✅ Mejor manejo de memoria en operaciones asíncronas
- ✅ Timers optimizados para evitar leaks
- ✅ Dispose mejorado de recursos
📈 Puntuación pub.dev #
| Criterio | Puntos | Estado |
|---|---|---|
| Convenciones Dart | 30/30 | ✅ |
| Documentación | 20/20 | ✅ |
| Análisis Estático | 50/50 | ✅ |
| Soporte Plataforma | 20/20 | ✅ |
| Dependencias Actualizadas | 40/40 | ✅ |
| TOTAL | 160/160 | ✅ |
🎯 Compatibilidad #
- ✅ Flutter: >= 1.17.0
- ✅ Dart: >= 3.4.4
- ✅ Android: API 21+ (Android 5.0+)
- ✅ iOS: 11.0+
📝 Notas de Migración #
Esta versión es 100% compatible con la versión anterior. No se requieren cambios en el código existente.
🔗 Enlaces #
- Repositorio: https://github.com/pablomelobt/advanced_video_player.git
- Documentación: https://github.com/pablomelobt/advanced_video_player.git#readme
- Issues: https://github.com/pablomelobt/advanced_video_player/issues
0.0.1 - 2025-10-07 #
🎉 Lanzamiento Inicial #
Primera versión del reproductor de video avanzado para Flutter con controles modernos y funcionalidades completas.
✨ Características Principales #
Reproductor de Video
- ✅ Soporte completo para reproducción de video desde URLs de red
- ✅ Soporte para videos locales (assets)
- ✅ Controles intuitivos de reproducción (Play/Pause)
- ✅ Navegación por tiempo (retroceder/avanzar configurable)
- ✅ Barra de progreso interactiva con navegación precisa
- ✅ Indicadores de tiempo (actual y duración total)
- ✅ Modo pantalla completa con soporte de orientación
Diseño y UI
- ✅ Interfaz moderna con gradientes personalizables
- ✅ Controles que aparecen y desaparecen automáticamente
- ✅ Animaciones suaves y transiciones fluidas
- ✅ Colores personalizables (primaryColor y secondaryColor)
- ✅ Diseño responsivo para web, móvil y tablet
- ✅ Iconos intuitivos y profesionales
Funcionalidades Avanzadas
- ✅ Picture-in-Picture (PiP): Soporte nativo para reproducción en ventana flotante
- Android: API 24+ (Android 7.0+)
- iOS: iOS 14.0+
- ✅ Screen Sharing: Integración con Google Cast para Chromecast
- ✅ AirPlay: Soporte nativo para dispositivos Apple (iOS)
- ✅ Callbacks: onVideoEnd y onError para manejo de eventos
- ✅ Metadatos: Título y descripción para compartir contenido
Manejo de Estados
- ✅ Estado de carga con indicador visual
- ✅ Manejo de errores con callbacks
- ✅ Estado de reproducción pausada/activa
- ✅ Detección automática de finalización de video
Configuración y Personalización
- ✅ Duración de salto personalizable (skipDuration)
- ✅ Habilitación/deshabilitación de funcionalidades individuales
- ✅ Personalización completa de colores
- ✅ Configuración de metadatos de video
📦 Dependencias #
video_player: ^2.8.1- Reproductor de video baseurl_launcher: ^6.2.2- Apertura de URLs externas
📋 Requisitos #
- Flutter: >= 1.17.0
- Dart: >= 3.4.4
- Android: API 21+ (Android 5.0+)
- iOS: 11.0+
📖 Documentación #
- Guía completa de configuración para Android
- Guía completa de configuración para iOS
- Ejemplos de uso básico y avanzado
- Documentación de parámetros y API
🔧 Configuraciones Incluidas #
Android
- Permisos de red
- Configuración de Picture-in-Picture
- Integración de Google Cast SDK
- Soporte para reproducción en segundo plano
iOS
- Modos de fondo para PiP y audio
- Configuración de AirPlay
- Soporte para múltiples orientaciones
- Permisos de red y streaming
🎯 Plataformas Soportadas #
- ✅ Android (API 21+)
- ✅ iOS (11.0+)
📝 Notas #
- Se requiere configuración adicional en AndroidManifest.xml y Info.plist
- Consultar las guías de configuración en
/docspara setup completo - Picture-in-Picture puede tener limitaciones con assets locales
- Google Cast requiere dispositivos compatibles en la misma red