Seguimiento de reproducción principal en Roku track-core-playback-on-roku
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.MediaObjectReferencia: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 vídeo Sí mediaidIdentificador único de vídeo Sí lengthDuración del vídeo 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 MEDIA_STREAM_TYPE_VODTipo de emisión de vídeo bajo demanda. MEDIA_STREAM_TYPE_LIVETipo de emisión de contenido en directo. MEDIA_STREAM_TYPE_LINEARTipo de emisión de contenido lineal. MEDIA_STREAM_TYPE_AODTipo de emisión de audio a la carta. MEDIA_STREAM_TYPE_AUDIOBOOKTipo de emisión de audiolibro. MEDIA_STREAM_TYPE_PODCASTTipo de emisión de podcast. MediaTypeConstantes:table 0-row-2 1-row-2 2-row-2 Nombre de la constante Descripción MEDIA_STREAM_TYPE_AUDIOTipo de contenido para emisiones de audio. MEDIA_STREAM_TYPE_VIDEOTipo de contenido para emisiones de vídeo. Cree un objeto de información multimedia para vídeo con contenido de VOD:
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_VOD, ADBMobile().MEDIA_TYPE_VIDEO )O bien
code language-none mediaInfo = adb_media_init_mediainfo() mediaInfo.name = "<MEDIA_NAME>" mediaInfo.id = "<MEDIA_ID>" mediaInfo.length = 600 mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_VOD mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_VIDEOCree un objeto de información multimedia para vídeo con contenido de AOD:
code language-none mediaInfo = adb_media_init_mediainfo( "<MEDIA_NAME>", "<MEDIA_ID>", 600, ADBMobile().MEDIA_STREAM_TYPE_AOD, ADBMobile().MEDIA_TYPE_AUDIO )O bien
code language-none mediaInfo = adb_media_init_mediainfo() mediaInfo.name = "<MEDIA_NAME>" mediaInfo.id = "<MEDIA_ID>" mediaInfo.length = 600 mediaInfo.streamType = ADBMobile().MEDIA_STREAM_TYPE_AOD mediaInfo.mediaType = ADBMobile().MEDIA_TYPE_AUDIO -
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 Roku
<div class="extension note">
<div>NOTE</div>
<div>
<p>No es obligatorio adjuntar el objeto de metadatos de vídeo estándar al objeto de contenidos.</p>
</div>
</div>
-
Metadatos personalizados
Cree un objeto de variable para las variables personalizadas y rellénelo con los datos de este vídeo. Por ejemplo:
code language-none mediaContextData = {} mediaContextData["cmk1"] = "cmv1" mediaContextData["cmk2"] = "cmv2"
-
Realice un seguimiento de la intención de iniciar la reproducción
Para empezar a realizar el seguimiento de una sesión multimedia, invoque a
trackSessionStarten la instancia de Media Heartbeat:code language-none ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)note tip TIP El segundo valor es el nombre de objeto de metadatos de video 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 vídeo y para calcular la métrica de QoS (tiempo entretrackSessionStartytrackPlay).note note NOTE Si no utiliza metadatos de vídeo personalizados, envíe un objeto vacío para el argumento dataentrackSessionStart, tal y como se muestra en la línea comentada del ejemplo para iOS anterior. -
Realizar un seguimiento del inicio real de la reproducción
Identifique el evento del reproductor de vídeo para el principio de la reproducción, cuando se renderice el primer fotograma del vídeo en la pantalla e invoque
trackPlay:code language-none ADBMobile().mediaTrackPlay() -
Actualización de valor del cabezal de reproducción
Cuando el cabezal de reproducción de contenido cambie, notifique a SDK llamando a la API
mediaUpdatePlayhead.
Para el vídeo bajo demanda (VOD), el valor se especifica segundos después del comienzo del elemento de medios.
Para el streaming en vivo, si el reproductor no proporciona información acerca de la duración del contenido, el valor se puede especificar como el número de segundos desde la medianoche (UTC) de ese día.code language-none ADBMobile().mediaUpdatePlayhead(position)note note NOTE Tenga en cuenta lo siguiente al llamar a la API mediaUpdatePlayhead:- Cuando se utilizan marcadores de progreso, la duración del contenido es obligatoria y el cabezal de reproducción debe actualizarse como número de segundos desde el principio del elemento de medios, empezando por 0.
- Al utilizar los SDK de medios, debe llamar a la API
mediaUpdatePlayheadal menos una vez por segundo.
-
Realizar un seguimiento de la finalización de la reproducción
Identifique el evento del reproductor de vídeo para la finalización de la reproducción, cuando el usuario ha visto el contenido hasta el final e invoque
trackComplete:code language-none ADBMobile().mediaTrackComplete() -
Realizar un seguimiento del final de la sesión
Identifique el evento del reproductor de vídeo para la descarga o cierre de la reproducción, cuando el usuario cierra o completa la descarga e invoque
trackSessionEnd:code language-none ADBMobile().mediaTrackSessionEnd()note important IMPORTANT trackSessionEndmarca el final de una sesión de seguimiento de vídeo. 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 pasan por alto después detrackSessionEnd(salvotrackSessionStarten una nueva sesión de seguimiento de vídeo). -
Rastrear todos los escenarios de pausa posibles
Identifique el evento del reproductor en el que se pause el vídeo e invoque
trackPause:code language-none ADBMobile().mediaTrackPause()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 vídeo desde donde se produjo la interrupción.
-
Identifique el evento del reproductor en el que el vídeo se reproduzca o se reanude e invoque
trackPlay:code language-none ADBMobile().mediaTrackPlay()note tip TIP Puede ser el mismo origen de evento empleado en el paso 4. Asegúrese de que cada llamada de API a trackPause()esté vinculada a continuación con una llamada de API atrackPlay()cuando se reanude la reproducción de vídeo.
- Situaciones de seguimiento: Reproducción de VOD sin anuncios
- Reproductor de muestra incluido con el SDK para Roku para ver un ejemplo de seguimiento completo.