Seguimiento de reproducción principal en Android track-core-playback-on-android
Esta documentación abarca el seguimiento en la versión 2.x del SDK.
-
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.table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 3-align-center 7-align-center 11-align-center 15-align-center 19-align-center 23-align-center Nombre de variable Descripción Requerido nameNombre del contenido Sí mediaIdIdentificador único del contenido Sí lengthDuración del contenido Sí streamTypeTipo de flujo (consulte Constantes de StreamType a continuación) Sí mediaTypeTipo de contenido (consulte Constantes de MediaType a continuación) Sí StreamTypeConstantes:table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 Nombre de la constante Descripción VODTipo de emisión de vídeo bajo demanda. LIVETipo de emisión de contenido en directo. LINEARTipo de emisión de contenido lineal. AODTipo de emisión de audio a la carta. AUDIOBOOKTipo de emisión de audiolibro. PODCASTTipo de emisión de podcast. MediaTypeConstantes:table 0-row-2 1-row-2 2-row-2 Nombre de la constante Descripción AudioTipo de contenido para emisiones de audio. VideoTipo de contenido para emisiones de vídeo. code language-none MediaHeartbeat.createMediaObject(<MEDIA_NAME>, <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>); -
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
Implementación de metadatos estándar en Android
note note NOTE No es obligatorio adjuntar el objeto de metadatos estándar al objeto de contenidos. - Referencia de API de claves de metadatos de medios: Claves de metadatos estándar de Android
- Consulte el conjunto completo de metadatos de vídeo disponibles aquí: Parámetros de audio y vídeo.
-
Metadatos personalizados
Cree un diccionario para las variables personalizadas y rellénelo con los datos de estos contenidos. Por ejemplo:
code language-java HashMap<String, String> mediaMetadata = new HashMap<String, String>(); mediaMetadata.put("isUserLoggedIn", "false"); mediaMetadata.put("tvStation", "Sample TV Station"); mediaMetadata.put("programmer", "Sample programmer");
-
-
Realice un seguimiento de la intención de iniciar la reproducción
Para empezar a realizar el seguimiento de una sesión multimedia, invoque
trackSessionStarten la instancia de Media Heartbeat. Por ejemplo:code language-java public void onVideoLoad(Observable observable, Object data) { _heartbeat.trackSessionStart(mediaInfo, mediaMetadata); }note tip TIP El segundo valor es el nombre de objeto de metadatos de contenido personalizado que ha creado en el paso 2. note important IMPORTANT trackSessionStartrastrea 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 entretrackSessionStart() ytrackPlay).note note NOTE Si no utiliza metadatos de contenido personalizados, envíe un objeto vacío para el segundo argumento en trackSessionStart. -
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:code language-java // Video is rendered on the screen) and call trackPlay. public void onVideoPlay(Observable observable, Object data) { _heartbeat.trackPlay(); } -
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:code language-java public void onVideoComplete(Observable observable, Object data) { _heartbeat.trackComplete(); } -
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:code language-java // Closes the media and/or the media completed and unloaded, // and call trackSessionEnd(). public void onMainVideoUnload(Observable observable, Object data) { _heartbeat.trackSessionEnd(); }note important IMPORTANT trackSessionEndmarca 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 invocartrackCompleteantes quetrackSessionEnd. Las demás llamadas de la APItrack*se ignoran después detrackSessionEnd(salvotrackSessionStarten una nueva sesión de seguimiento de contenido). -
Rastrear todos los escenarios de pausa posibles
Identifique el evento desde el reproductor de contenido para que los contenidos se detengan e invoque
trackPause:code language-java 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
trackPausecorrectamente. Las siguientes situaciones requieren que la aplicación invoquetrackPause():- El usuario hace una pausa explícita en la aplicación.
- El reproductor se pone en estado de pausa.
- (Aplicaciones móviles): El usuario pone la aplicación en segundo plano, pero desea que la aplicación mantenga abierta la sesión.
- (Aplicaciones móviles): Se produce cualquier tipo de interrupción del sistema que provoca que una aplicación se ponga 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.
-
Identifique el evento del reproductor para la reproducción o reanudación de contenido después de la pausa e invoque
trackPlay.code language-java // trackPlay() public void onVideoPlay(Observable observable, Object data) { _heartbeat.trackPlay(); }note tip TIP 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 APItrackPlay()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:
- Situaciones de seguimiento: Reproducción de VOD sin anuncios
- Reproductor de muestra incluido con el SDK para Android para ver un ejemplo de seguimiento completo.