advanced_video_player 1.0.0 copy "advanced_video_player: ^1.0.0" to clipboard
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 #


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 analyze limpio)
  • 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.1 a ^2.9.5
  • url_launcher: Actualizado de ^6.2.2 a ^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ódigo
  • lib/native_video_player.dart - Sistema de eventos PiP añadido, callbacks onPipStarted, onPipStopped, onPipRestoreToFullscreen
  • lib/picture_in_picture_service.dart - Documentación completa
  • lib/screen_sharing_service.dart - Documentación y mejoras
  • ios/Classes/AdvancedVideoPlayerPlugin.swift - Restauración automática a fullscreen, EventChannel por vista, PlayerViewEventHandler
  • test/advanced_video_player_test.dart - Pruebas optimizadas
  • example/lib/native_player_example.dart - Ejemplo con navegación a fullscreen desde PiP
  • doc/pip-fullscreen-restoration.md - Nueva documentación sobre restauración automática
  • pubspec.yaml - Dependencias actualizadas
  • README.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 #


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 base
  • url_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 /docs para setup completo
  • Picture-in-Picture puede tener limitaciones con assets locales
  • Google Cast requiere dispositivos compatibles en la misma red
1
likes
150
points
336
downloads

Publisher

unverified uploader

Weekly Downloads

Un reproductor de video avanzado para Flutter con controles modernos, Picture-in-Picture, Google Cast, AirPlay y diseño personalizable.

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

flutter, qr_flutter, url_launcher, video_player

More

Packages that depend on advanced_video_player

Packages that implement advanced_video_player