Show Menu
TEMAS×

Seguimiento de reproducción principal en Android

Esta documentación abarca el seguimiento en la versión 2.x del SDK. Si va a implementar una versión 1.x del SDK, puede descargar la guía del desarrollador de 1.x para Android aquí: Descargar SDK .
  1. Configuración de seguimiento inicial
    Identifique el momento en que el usuario desencadena la intención de reproducir (cuando hace clic en reproducir o la reproducción automática está activada) y cree una instancia de MediaObject .
    Nombre de variable
    Descripción
    Requerido
    name
    Nombre del contenido
    mediaId
    Identificador único del contenido
    length
    Duración del contenido
    streamType
    Tipo de flujo (consulte Constantes de StreamType a continuación)
    mediaType
    Tipo de contenido (consulte Constantes de MediaType a continuación)
    Constantes de StreamType :
    Nombre de la constante
    Descripción
    VOD
    Tipo de emisión de vídeo bajo demanda.
    LIVE
    Tipo de emisión de contenido en directo.
    LINEAR
    Tipo de emisión de contenido lineal.
    AOD
    Tipo de emisión de audio a la carta.
    AUDIOBOOK
    Tipo de emisión de audiolibro.
    PODCAST
    Tipo de emisión de podcast.
    Constantes de MediaType :
    Nombre de la constante
    Descripción
    Audio
    Tipo de contenido para emisiones de audio.
    Video
    Tipo de contenido para emisiones de vídeo.
    MediaHeartbeat.createMediaObject(<MEDIA_NAME>,  
      <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>);
    
    
  2. Adjuntar metadatos
    Opcionalmente, se pueden adjuntar objetos de metadatos estándar o personalizados a la sesión de seguimiento mediante el uso de variables de datos de contexto.
    • Metadatos estándar
      No es obligatorio adjuntar el objeto de metadatos estándar al objeto de contenidos.
    • Metadatos personalizados
      Cree un diccionario para las variables personalizadas y rellénelo con los datos de estos contenidos. Por ejemplo:
      HashMap<String, String> mediaMetadata =  
        new HashMap<String, String>(); 
      mediaMetadata.put("isUserLoggedIn", "false"); 
      mediaMetadata.put("tvStation", "Sample TV Station"); 
      mediaMetadata.put("programmer", "Sample programmer");
      
      
  3. Realice un seguimiento de la intención de iniciar la reproducción
    Para empezar a realizar el seguimiento de una sesión multimedia, invoque trackSessionStart en la instancia de Media Heartbeat. Por ejemplo:
    public void onVideoLoad(Observable observable, Object data) {  
        _heartbeat.trackSessionStart(mediaInfo, mediaMetadata); 
    }
    
    
    El segundo valor es el nombre de objeto de metadatos de contenido personalizado que ha creado en el paso 2.
    trackSessionStart rastrea la intención de reproducción, no el comienzo de la reproducción. Esta API se utiliza para cargar los datos y los metadatos del contenido y para calcular la métrica de QoS (tiempo entre trackSessionStart () y trackPlay ).
    Si no utiliza metadatos de contenido personalizados, envíe un objeto vacío para el segundo argumento en trackSessionStart .
  4. Realizar un seguimiento del inicio real de la reproducción
    Identifique el evento del reproductor de contenidos para el principio de la reproducción de contenido, cuando se renderice el primer fotograma del contenido en la pantalla, e invoque trackPlay :
    // Video is rendered on the screen) and call trackPlay.  
    public void onVideoPlay(Observable observable, Object data) { 
        _heartbeat.trackPlay(); 
    }
    
    
  5. Realizar un seguimiento de la finalización de la reproducción
    Identifique el evento del reproductor de contenidos para la finalización de la reproducción del contenido cuando el usuario ha visto el contenido hasta el final e invoque trackComplete :
    public void onVideoComplete(Observable observable, Object data) { 
        _heartbeat.trackComplete(); 
    }
    
    
  6. Realizar un seguimiento del final de la sesión
    Identifique el evento del reproductor de contenidos para la carga o el cierre de la reproducción de contenido, cuando el usuario cierra o se completa la descarga, e invoque trackSessionEnd :
    // Closes the media and/or the media completed and unloaded,  
    // and call trackSessionEnd().  
    public void onMainVideoUnload(Observable observable, Object data) {  
        _heartbeat.trackSessionEnd(); 
    }
    
    
    trackSessionEnd marca el final de una sesión de seguimiento de contenido. Si la sesión se ha visto por completo correctamente, es decir, el usuario ha visto el contenido hasta el final, asegúrese de invocar trackComplete antes que trackSessionEnd . Las demás llamadas de la API track* se ignoran después de trackSessionEnd (salvo trackSessionStart en una nueva sesión de seguimiento de contenido).
  7. Rastrear todos los escenarios de pausa posibles
    Identifique el evento desde el reproductor de contenido para que los contenidos se detengan e invoque trackPause :
    public void onVideoPause(Observable observable, Object data) {  
        _heartbeat.trackPause(); 
    }
    
    
    Pausar escenarios
    Identifique cualquier situación en la que se pausará el reproductor y compruebe que se ha invocado trackPause correctamente. Las siguientes situaciones requieren que la aplicación invoque trackPause() :
    • Cuando el usuario pausa explícitamente en la aplicación.
    • Cuando el reproductor se sitúa en el estado En pausa.
    • ( Aplicaciones móviles ): cuando el usuario coloca la aplicación en segundo plano, pero desea que la sesión continúe abierta.
    • ( Aplicaciones móviles ): cuando se produce cualquier tipo de interrupción del sistema que provoca que una aplicación se quede en segundo plano. Por ejemplo, si el usuario recibe una llamada o aparece una ventana emergente de otra aplicación, pero desea que la aplicación mantenga la sesión activa para que el usuario pueda reanudar el contenido desde donde se produjo la interrupción.
  8. Identifique el evento del reproductor para la reproducción o reanudación de contenido después de la pausa e invoque trackPlay .
    // trackPlay() 
    public void onVideoPlay(Observable observable, Object data) {  
        _heartbeat.trackPlay(); 
    }
    
    
    Puede ser el mismo origen de evento empleado en el paso 4. Asegúrese de que cada llamada de API trackPause() esté emparejada con una llamada posterior a la API trackPlay() cuando se reanude la reproducción del contenido.
Consulte lo siguiente para obtener más información sobre el seguimiento de la reproducción principal: