Reproduzir transmissões de VOD registradas com a API Google Cloud Video Stitcher
Este guia demonstra como usar o SDK IMA DAI para Android para solicitar e reproduzir uma sessão de streaming VOD do Google Cloud.
Este guia expande o exemplo básico do Guia de início de uso para a DAI do IMA.
Para informações sobre a integração com outras plataformas ou o uso dos SDKs do lado do cliente do IMA, consulte SDKs do Interactive Media Ads.
Se você quiser conferir ou seguir uma integração de exemplo completa, faça o download do exemplo de integrador de vídeos do Cloud.
Configure um projeto do Google Cloud
Insira as seguintes variáveis para uso no SDK do IMA:
- Local
- A região do Google Cloud
em que a configuração de VOD foi criada:
LOCATION
- Número do projeto
- O número do projeto do Google Cloud que usa a API Video Stitcher:
PROJECT_NUMBER
- Token OAuth
Um token OAuth de curta duração de uma conta de serviço com a função de usuário do Video Stitcher:
OAUTH_TOKEN
Leia mais sobre como criar tokens OAuth de curta duração. O token OAuth pode ser reutilizado em várias solicitações, desde que não tenha expirado.
- Código da rede
O código de rede do Ad Manager para solicitar anúncios:
NETWORK_CODE
- ID de configuração do VOD
O ID da configuração de VOD para a transmissão de VOD:
VOD_CONFIG_ID
Leia mais sobre como criar o ID de configuração de VOD no guia Criar um guia de configuração de VOD no Cloud stitching.
Configurar o exemplo básico
Acesse a página de lançamento do DAI do IMA para Android no GitHub e faça o download do exemplo básico. Este exemplo é um app Android que pode ser aberto no Android Studio para fins de teste.
Para testar com uma transmissão VOD que não seja do Cloud Video Stitcher, defina a constante CONTENT_TYPE
em SampleAdsWrapper.java como ContentType.VOD_HLS
ou
ContentType.VOD_DASH
para carregar o ID do CMS e do vídeo adequados para a
transmissão. Em seguida, em SampleVideoPlayer.java, defina currentlyPlayingStreamType
como
CONTENT_TYPE_HLS
ou CONTENT_TYPE_DASH
para processar corretamente os
metadados do tipo de transmissão escolhido.
Se tudo estiver funcionando corretamente, ao clicar no botão de reprodução no player de vídeo, o curta-metragem "Tears of Steel" vai começar, com um intervalo de anúncio pré-rolagem.
Solicitar um stream de VOD
Para substituir o fluxo de amostra pelo fluxo VOD com anúncios agrupados, use
sdkFactory.createVideoStitcherVodStreamRequest()
para criar uma sessão de anúncios com o Google Ad Manager. Você pode usar a interface do Google Ad Manager para localizar as sessões de DAI geradas para monitoramento e depuração.
sdkFactory.createVideoStitcherVodStreamRequest()
está disponível no SDK do IMA DAI v3.30.0 ou mais recente.
Para usar sdkFactory.createVideoStitcherVodStreamRequest()
com o parâmetro vodConfigId
, é necessário ter o SDK do IMA DAI versão 3.33.0 ou mais recente.
No exemplo atual, há instruções condicionais para solicitar uma transmissão VOD
ou uma transmissão ao vivo. Para que ele funcione com a API Google Cloud Video Stitcher, é necessário adicionar um novo caminho para retornar um StreamRequest
criado usando
sdkFactory.createVideoStitcherVodStreamRequest()
.
Veja um exemplo:
videoplayerapp/SampleAdsWrapper.java
...
private enum ContentType {
LIVE_HLS,
LIVE_DASH,
// Add a VOD HLS Google Cloud type. DASH streams are also supported.
VOD_HLS_GOOGLE_CLOUD,
VOD_DASH_GOOGLE_CLOUD,
VOD_HLS,
VOD_DASH,
}
// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
ContentType.VOD_HLS_GOOGLE_CLOUD;
...
@Nullable
private StreamRequest buildStreamRequest() {
StreamRequest request;
switch (CONTENT_TYPE) {
...
case VOD_HLS_GOOGLE_CLOUD:
case VOD_DASH_GOOGLE_CLOUD:
// VOD HLS or DASH stream generated by the
// Google Cloud Video Stitcher API.
request = sdkFactory.createVideoStitcherVodStreamRequest(
"NETWORK_CODE",
"LOCATION",
"PROJECT_NUMBER",
"OAUTH_TOKEN",
"VOD_CONFIG_ID"
);
if (CONTENT_TYPE == ContentType.VOD_HLS_GOOGLE_CLOUD) {
request.setFormat(StreamFormat.HLS);
} else {
request.setFormat(StreamFormat.DASH);
}
return request;
}
// Content type not selected.
return null;
}
...
Recarregue o app para solicitar e reproduzir a transmissão VOD personalizada.
(Opcional) Adicionar opções de sessão de streaming
Personalize sua solicitação de transmissão adicionando opções de sessão para substituir a configuração padrão
da API Cloud Video Stitcher usando
StreamRequest.setVideoStitcherSessionOptions()
.
Se você fornecer uma opção não reconhecida, a API Cloud
Video Stitcher vai responder com um erro HTTP 400. Consulte o
guia de solução de problemas
para receber ajuda.
Por exemplo, é possível substituir as opções de manifesto com o snippet de código abaixo, que solicita dois manifestos de transmissão com renditions ordenadas do bitrate mais baixo para o mais alto.
public void requestAndPlayAds() {
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
StreamRequest streamRequest = buildStreamRequest();
// The following session options are examples. Use session options
// that are compatible with your video stream.
Map<String, Object> sessionOptions = Map.of(
"manifestOptions", Map.of(
"bitrateOrder", "ascending"
)
);
/* sessionOptions JSON structure.
* {
* "manifestOptions": {
* "bitrateOrder": "ascending"
* }
* };
*/
streamRequest.setVideoStitcherSessionOptions(sessionOptions);
adsLoader.requestStream(streamRequest);
}
Limpar
Agora que você hospedou um fluxo de VOD usando a API Google Cloud Video Stitcher e o SDK do IMA DAI para Android, é importante limpar todos os recursos de veiculação.
Siga o guia Limpeza de VOD para remover recursos e recursos desnecessários.