Rastreamento da reprodução principal no Roku track-core-playback-on-roku

Esta documentação abrange o rastreamento na versão 2.x do SDK.

IMPORTANT
Se estiver implementando uma versão 1.x do SDK, você pode baixar os Guias dos desenvolvedores 1.x aqui: Baixar SDKs.
  1. 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.

    MediaObjectreferência:

    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
    name Nome do vídeo Sim
    mediaid identificador exclusivo do vídeo Sim
    length Duração do vídeo Sim
    streamType Tipo de fluxo (consulte Constantes de StreamType abaixo) Sim
    mediaType Tipo 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
    MEDIA_STREAM_TYPE_VOD Tipo de fluxo para vídeo sob demanda.
    MEDIA_STREAM_TYPE_LIVE Tipo de fluxo para conteúdo LIVE.
    MEDIA_STREAM_TYPE_LINEAR Tipo de fluxo para conteúdos lineares.
    MEDIA_STREAM_TYPE_AOD Tipo de fluxo para áudio sob demanda
    MEDIA_STREAM_TYPE_AUDIOBOOK Tipo de fluxo para audiobook
    MEDIA_STREAM_TYPE_PODCAST Tipo de fluxo para podcast

    MediaTypeConstantes:

    table 0-row-2 1-row-2 2-row-2
    Nome da constante Descrição
    MEDIA_STREAM_TYPE_AUDIO Tipo de mídia para fluxos de áudio.
    MEDIA_STREAM_TYPE_VIDEO Tipo de mídia para fluxos de vídeo.

    Crie um objeto de informações de mídia para vídeo com conteúdo de VOD:

    code language-none
     mediaInfo = adb_media_init_mediainfo(
      "<MEDIA_NAME>",
      "<MEDIA_ID>",
      600,
      ADBMobile().MEDIA_STREAM_TYPE_VOD,
      ADBMobile().MEDIA_TYPE_VIDEO
    )
    

    ou

    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_VIDEO
    

    Crie um objeto de informações de mídia para vídeo com conteúdo AOD:

    code language-none
    mediaInfo = adb_media_init_mediainfo(
     "<MEDIA_NAME>",
     "<MEDIA_ID>",
     600,
     ADBMobile().MEDIA_STREAM_TYPE_AOD,
     ADBMobile().MEDIA_TYPE_AUDIO
    )
    

    ou

    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
    
  2. 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 Roku

 <div class="extension note">
 <div>NOTE</div>
 <div>
 <p>Anexar o objeto de metadados de vídeo padrão ao objeto de mídia é opcional.</p>
 </div>
 </div>
  • Metadados personalizados

    Crie um objeto variável para as variáveis personalizadas e preencha com os dados deste vídeo. Por exemplo:

    code language-none
    mediaContextData = {}
    mediaContextData["cmk1"] = "cmv1"
    mediaContextData["cmk2"] = "cmv2"
    
  1. Rastrear a intenção de iniciar a reprodução

    Para começar a rastrear uma sessão de mídia, chame trackSessionStart na instância do Media Heartbeat:

    code language-none
    ADBMobile().mediaTrackSessionStart(mediaInfo,mediaContextData)
    
    note tip
    TIP
    O segundo valor é o nome de objeto dos metadados de vídeo personalizados, criado na etapa 2.
    note important
    IMPORTANT
    trackSessionStart rastreia 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 vídeo e estimar a métrica de tempo do início de QoS (duração entre trackSessionStart e trackPlay).
    note note
    NOTE
    Se não estiver utilizando metadados de vídeo personalizados, basta enviar um objeto vazio para o argumento data em trackSessionStart, como mostrado na linha comentada do exemplo de iOS acima.
  2. Rastrear o início real da reprodução

    Identifique o evento no reprodutor de vídeo a partir do início da reprodução, onde o primeiro quadro do vídeo é renderizado na tela, e chame trackPlay.

    code language-none
    ADBMobile().mediaTrackPlay()
    
  3. Atualizar valor do indicador de reprodução

    Quando o indicador de reprodução de mídia for alterado, notifique o SDK, chamando o mediaUpdatePlayhead API.
    Para vídeos sob demanda (VOD), o valor é especificado em segundos a partir do início do item de mídia.
    Para transmissões ao vivo, se o player não fornecer informações sobre a duração do conteúdo, o valor pode ser especificado como o número de segundos desde a meia-noite UTC daquele dia.

    code language-none
    ADBMobile().mediaUpdatePlayhead(position)
    
    note note
    NOTE
    Considere o seguinte ao chamar o mediaUpdatePlayhead API:
    • Ao usar marcadores de progresso, a duração do conteúdo é necessária e o indicador de reprodução precisa ser atualizado para o número de segundos desde o início do item de mídia, começando com 0.
    • Ao usar SDKs de mídia, você deve chamar o mediaUpdatePlayhead pelo menos uma vez por segundo.
  4. Rastrear a conclusão da reprodução

    Identifique o evento no reprodutor de vídeo para a conclusão da reprodução, onde o usuário assistiu ao conteúdo até o fim, e chame trackComplete.

    code language-none
    ADBMobile().mediaTrackComplete()
    
  5. Rastrear o final da sessão

    Identifique o evento no reprodutor de vídeo para o descarregamento/encerramento da reprodução, onde o usuário fecha o vídeo, e/ou ele é concluído e descarregado, e chame trackSessionEnd.

    code language-none
    ADBMobile().mediaTrackSessionEnd()
    
    note important
    IMPORTANT
    trackSessionEnd marca o fim de uma sessão de rastreamento de vídeo. Se a sessão tiver sido assistida até o final, onde o usuário assistiu ao conteúdo até o fim, verifique se trackComplete () é chamado antes de trackSessionEnd. Qualquer outra chamada de API de track* é ignorada depois de trackSessionEnd, exceto por trackSessionStart para uma nova sessão de rastreamento de vídeo.
  6. Rastrear todos os cenários de pausa possíveis

    Identifique o evento no reprodutor de vídeo para vídeos pausados e chame trackPause:

    code language-none
    ADBMobile().mediaTrackPause()
    

    Pausar cenários

    Identifique qualquer cenário no qual o reprodutor de vídeo será pausado e verifique se trackPause foi chamado corretamente. Os seguintes cenários exigem que o aplicativo chame trackPause():

    • 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 um pop-up de outro aplicativo ocorre, mas você deseja que o aplicativo mantenha a sessão ativa para que o usuário possa retomar o vídeo do ponto em que foi interrompido.
  7. Identifique o evento do reprodutor para reprodução e/ou continuação do vídeo a partir da pausa e chame trackPlay:

    code language-none
    ADBMobile().mediaTrackPlay()
    
    note tip
    TIP
    Esta pode ser a mesma fonte de evento utilizada na Etapa 4. Verifique se cada chamada trackPause() da API está emparelhada a uma chamada trackPlay() da API quando a reprodução continuar.
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb