Sumerjámonos en Exo Player (Parte V): cómo funcionan las descargas sin conexión | de Prateek Batra | marzo 2023

A medida que aumenta el consumo de video y las demandas de datos, también aumenta la necesidad de ver videos sin conexión. Los usuarios pueden ver sus videos descargados incluso cuando están desconectados, p. B. en el avión o en lugares con poca conexión a Internet. También proporcionan un medio de acceso seguro y evitan que se almacenen directamente en la memoria del usuario para siempre.Con Google ExoPlayer, podemos agregar fácilmente la capacidad de descargar medios (m3u8) para reproducirlos sin conexión. Aquí mantenemos partes del video en el caché del dispositivo en lugar de descargar el archivo completo y todas estas matrices de partes se asignan a la URL del videoEjemplo URL= [c1,c2,c3,c4…]Ahora, cuando Exoplayer intenta acceder a la URL de este video, se puede servir directamente desde la URL a través de una llamada de red, o podemos usar los fragmentos de video obtenidos para reproducir este video directamente sin sobrecarga de almacenamiento en búfer, es decir, reproducción sin conexión. Muchas de las aplicaciones, incluido Netflix. , Amazon Prime Video y YouTube funcionan con una técnica muy similar.Descripción general de cómo funciona la descarga sin conexión de ExoPlayer

  • servicio de descarga: Este es un servicio de descarga estándar empaquetado con un exoplayer que actúa como un envoltorio sobre DownloadManager y le pasa comandos. Además, este servicio ayuda a mantener las descargas de ExoPlayer incluso cuando la aplicación se ejecuta en segundo plano.
  • Gestor de descargas: como sugiere el nombre, este es el administrador que ayuda a administrar múltiples descargas, cargar y guardar el estado de descarga, iniciar y detener descargas
  • Fuente de datos HTTP: esta es una interfaz que ayuda a descargar el contenido multimedia desde el URI proporcionado (fuente de datos) a través de una conexión HTTP
  • cache: si el administrador de descargas especificado anteriormente descarga un bloque de datos, p. B. contenido de video, se almacena en el caché del dispositivo usando la fuente de datos de caché

Contenidos

Para la configuración básica, puede seguir la Parte 1:

repositorio de demostración

Flujo de alto nivel para la descarga sin conexión Como se muestra en el flujo anterior, usamos muchas clases diferentes para ayudar a descargar videos sin conexión, como:Descargar rastreadores: Esta es una clase de múltiples utilidades que es un envoltorio sobre ExoPlayer Download Manager & Download Service y también ayuda a manejar, rastrear y administrar cualquier tipo de operaciones de descarga, p.

  • Iniciar/detener descarga
  • Seguimiento de cada descarga sin conexión
  • Consultando contenido (en curso/ya descargado)

Descargar el asistente de diálogo: Este es un envoltorio sobre el asistente de descarga interno de ExoPlayer, que es responsable de ello.

  • Inicializar y eliminar descargas.
  • Extrae la información del título de los medios
  • Muestra el menú de selección para descargar títulos multimedia.
  • Crea solicitudes de descarga basadas en los títulos seleccionados.

Cuadro de diálogo de selección de pistas: Este es el cuadro de diálogo emergente de descarga que ofrece al usuario la opción de seleccionar qué pista de video y audio descargarServicio de descarga sin conexión: Este es un contenedor sobre el servicio de descarga original de ExoPlayer que ayuda a administrar todas las operaciones de descarga de Exoplayer, es decir

  • Iniciar/detener descarga
  • Pausar/reanudar descarga
  • Quitar Descargar
  • Seguimiento/ver el estado (a través de notificación) de la descarga en curso

Ayudante de notificación de estado de terminal: Este es un asistente de seguimiento del estado de la descarga que notifica cuando cambia el estado de la descarga junto con esta ayuda para notificar a los usuarios sobre la notificación del progreso de la descarga mediante OfflineDownloadService.

Necesitamos asegurarnos de agregar todos estos códigos repetitivos, ya que deben agregarse para agregar la descarga de soporte sin conexión referencia del código a continuación 👇

Iniciar/detener una descarga

Este método es parte de Descargar rastreadores esto ayuda a iniciar/detener cada descarga. Internamente, estos métodos continúan usando el

  • Servicio de descarga: Para eliminar el elemento multimedia ya descargado
  • Ayudante de diálogo de descarga: Para iniciar una nueva descarga como se mencionó anteriormente, este asistente ayudará a inicializar la descarga, extraer la información de la pista y mostrar esa información en forma de una publicación de diálogo que permite al usuario descargar la pista seleccionada.

Reproducir contenido descargado sin conexión

Este método sirve para inicializar el ExoPlayer para reproducir el contenido multimedia descargado anteriormente. Aquí Download Tracker ayuda a obtener la solicitud de descarga de los medios que descargamos con la URL del video. Además, esta solicitud de descarga se usa para crear una fuente de medios y usamos la fuente de datos de la memoria caché para recuperar el contenido descargado de la memoria caché.

¿Algunos pensamientos adicionales?

Hay muchas configuraciones profundas y experimentos que pueden acompañar esto. Esta es una implementación básica de cómo descargar y reproducir un video sin conexión. Hágame saber cómo trabajó en ExoPlayer y sus diversas características increíbles en los comentarios. Gracias por leer, ¡estén atentos a los excelentes artículos! : https://twitter.com/its_pra_tickNo olvides aplaudir, feliz codificación 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada.