Rastreamento da reprodução principal no Android track-core-playback-on-android
Esta documentação abrange o rastreamento na versão 2.x do SDK.
-
Configuração de rastreamento inicial
Identifique quando o usuário aciona a intenção de reproduzir (o usuário clica em Reproduzir e/ou a reprodução automática está ativada) e crie uma instância
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 Nome da variável Descrição Obrigatório nameNome da mídia Sim mediaIdIdentificador exclusivo de mídia Sim lengthDuração da mídia Sim streamTypeTipo de fluxo (consulte Constantes de StreamType abaixo) Sim mediaTypeTipo de mídia (consulte Constantes de MediaType abaixo) Sim StreamTypeConstantes:table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 Nome da constante Descrição VODTipo de fluxo para vídeo sob demanda. LIVETipo de fluxo para conteúdo LIVE. LINEARTipo de fluxo para conteúdos lineares. AODTipo de fluxo para áudio sob demanda AUDIOBOOKTipo de fluxo para audiobook PODCASTTipo de fluxo para podcast MediaTypeConstantes:table 0-row-2 1-row-2 2-row-2 Nome da constante Descrição AudioTipo de mídia para fluxos de áudio. VideoTipo de mídia para fluxos de vídeo. code language-none MediaHeartbeat.createMediaObject(<MEDIA_NAME>, <MEDIA_ID>, <MEDIA_LENGTH>, <STREAM_TYPE>, <MEDIA_TYPE>); -
Anexar metadados
Opcionalmente, anexe objetos de metadados padrão e/ou personalizados à sessão de rastreamento por meio de variáveis de dados de contexto.
-
Metadados padrão
Implementar metadados padrão no Android
note note NOTE Anexar o objeto de metadados padrão ao objeto de mídia é opcional. - Referência da API de chaves de metadados da mídia - Chaves de metadados padrão - Android
- Consulte o conjunto completo de metadados aqui: Parâmetros de áudio e vídeo
-
Metadados personalizados
Crie um dicionário para as variáveis personalizadas e preencha com os dados desta mídia. Por exemplo:
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");
-
-
Rastrear a intenção de iniciar a reprodução
Para começar a rastrear uma sessão de mídia, chame
trackSessionStartna instância do Heartbeat de mídia. Por exemplo:code language-java public void onVideoLoad(Observable observable, Object data) { _heartbeat.trackSessionStart(mediaInfo, mediaMetadata); }note tip TIP O segundo valor é o nome de objeto dos metadados de mídia personalizados, criado na etapa 2. note important IMPORTANT trackSessionStartrastreia a intenção de reproduzir do usuário e não o início da reprodução. Essa API é utilizada para carregar os dados/metadados de mídia e estimar a métrica de tempo do início de QoS (duração entretrackSessionStartetrackPlay).note note NOTE Se não estiver utilizando metadados de mídia personalizados, basta enviar um objeto vazio para o argumento em trackSessionStart. -
Rastrear o início real da reprodução
Identifique o evento do reprodutor de mídia para o início da reprodução, em que o primeiro quadro da mídia é renderizado na tela, e chame
trackPlay:code language-java // Video is rendered on the screen) and call trackPlay. public void onVideoPlay(Observable observable, Object data) { _heartbeat.trackPlay(); } -
Rastrear a conclusão da reprodução
Identifique o evento do reprodutor de mídia para a conclusão da reprodução, em que o usuário assistiu ao conteúdo até o fim, e chame
trackComplete:code language-java public void onVideoComplete(Observable observable, Object data) { _heartbeat.trackComplete(); } -
Rastrear o final da sessão
Identifique o evento do reprodutor de mídia para o descarregamento/encerramento da reprodução, em que o usuário fecha a mídia, e/ou a mídia é concluída e descarregada, e chame
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 o fim de uma sessão de rastreamento de mídia. Se a sessão tiver sido assistida até o final, onde o usuário assistiu ao conteúdo até o fim, verifique setrackComplete() é chamado antes detrackSessionEnd. Qualquer outra chamada de API detrack*é ignorada depois detrackSessionEnd, exceto portrackSessionStartpara uma nova sessão de rastreamento de mídia. -
Rastrear todos os cenários de pausa possíveis
Identifique o evento no reprodutor de mídia para pausa de mídia e chame
trackPause:code language-java public void onVideoPause(Observable observable, Object data) { _heartbeat.trackPause(); }Pausar cenários
Identifique qualquer cenário no qual o reprodutor de vídeo será pausado e verifique se
trackPausefoi chamado corretamente. Os seguintes cenários exigem que o aplicativo chametrackPause():- O usuário faz uma pausa explicitamente no aplicativo.
- O player se coloca no estado Pausa.
- (Aplicativos móveis) - O usuário coloca o aplicativo em segundo plano, mas você deseja que ele mantenha a sessão aberta.
- (Aplicativos móveis) - Qualquer tipo de interrupção de sistema que ocorra e faça com que um aplicativo seja colocado em segundo plano. Por exemplo, o usuário recebe uma chamada ou uma pop-up de outro aplicativo ocorre, mas você deseja que o aplicativo mantenha a sessão ativa para dar ao usuário a oportunidade de retomar a mídia a partir do ponto de interrupção.
-
Identifique o evento do reprodutor para reprodução e/ou retomada da pausa da mídia e chame
trackPlay.code language-java // trackPlay() public void onVideoPlay(Observable observable, Object data) { _heartbeat.trackPlay(); }note tip TIP Esta pode ser a mesma fonte de evento utilizada na Etapa 4. Verifique se cada chamada da API de trackPause()está emparelhada a uma chamada da API detrackPlay()quando a reprodução de mídia for retomada.
Consulte as informações adicionais sobre o rastreamento da reprodução principal:
- Cenários de rastreamento: Reprodução de VOD sem anúncios
- Reprodutor de exemplo incluído com o SDK do Android para um exemplo completo de rastreamento.