Reproduzir transmissões ao vivo registradas com a API Google Cloud Video Stitcher
Este guia demonstra como usar o SDK do IMA DAI para Android para solicitar e reproduzir uma transmissão ao vivo de um evento registrado com a API Google Cloud Video Stitcher e como inserir um intervalo de anúncio durante a reprodução.
Este guia expande o exemplo básico do Guia de início de uso do IMA DAI.
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 ativa 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
Saiba mais sobre como criar credenciais de curta duração para contas de serviç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 da configuração ao vivo
- O ID da configuração ao vivo que você especificou ao criar o evento de transmissão ao vivo:
LIVE_CONFIG_ID
- Chave de recurso personalizada
- A chave de recurso personalizada do Ad Manager gerada durante o processo de criação de uma
configuração para um evento de transmissão ao vivo
com a API Video Stitcher:
CUSTOM_ASSET_KEY
Fazer o download do exemplo básico
Faça o download e execute o exemplo básico de DAI do IMA para Android. Clique no botão play no player de vídeo para iniciar o curta-metragem "Tears of Steel", que contém intervalos de anúncios a cada 30 segundos.
Solicitar uma transmissão ao vivo
Para substituir a transmissão de amostra pela transmissão ao vivo, use o
ImaSdkFactory.createVideoStitcherLiveStreamRequest()
para criar uma sessão de anúncios com o Google Ad Manager. É possível usar a interface do Google Ad Manager para localizar as sessões de DAI geradas para fins de monitoramento e depuração.
No exemplo atual, há instruções condicionais para solicitar um stream de VOD
ou uma transmissão ao vivo. Para que funcione com a API Google Cloud Video Stitcher,
é necessário adicionar um novo caminho para retornar um StreamRequest
criado usando
ImaSdkFactory.createVideoStitcherLiveStreamRequest()
.
Veja um exemplo:
videoplayerapp/SampleAdsWrapper.java
private sdkFactory ImaSdkFactory;
...
private enum ContentType {
LIVE_HLS,
LIVE_DASH,
// Add a Live HLS Google Cloud type.
LIVE_HLS_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.LIVE_HLS_GOOGLE_CLOUD;
...
@Nullable
private StreamRequest buildStreamRequest() {
StreamRequest request;
switch (CONTENT_TYPE) {
...
case LIVE_HLS_GOOGLE_CLOUD:
// Live HLS stream generated by the Google Cloud Video Stitcher API.
request = sdkFactory.createVideoStitcherLiveStreamRequest(
"NETWORK_CODE",
"CUSTOM_ASSET_KEY",
"LIVE_CONFIG_ID",
"LOCATION",
"PROJECT_NUMBER",
"OAUTH_TOKEN"
);
request.setFormat(StreamFormat.HLS);
return request;
}
// Content type not selected.
return null;
}
...
Recarregue o app para solicitar e assistir a transmissão ao vivo 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);
}
Inserir um intervalo de anúncio
A API Google Cloud Video Stitcher insere anúncios extraídos da tag de anúncio para cada intervalo de anúncios. Os intervalos comerciais são indicados no manifesto usando marcadores de anúncios. Os marcadores de anúncio são inseridos pelo codificador de transmissão ao vivo.
Se você estiver usando sua própria transmissão ao vivo, insira o marcador de anúncio. Para mais informações sobre os marcadores de anúncio HLS e DASH compatíveis, consulte a documentação de marcadores de anúncio.
Se você criou uma transmissão ao vivo usando a API Google Cloud Livestream, insira um evento de canal de intervalo de anúncio.
O anúncio é reproduzido imediatamente após o intervalo de anúncio ser inserido.
Limpar
Agora que você já hospedou uma transmissão ao vivo usando a API Google Cloud Video Stitcher e a solicitou usando o SDK DAI do IMA para Android, é importante limpar todos os recursos de veiculação.
Siga o guia de limpeza de transmissão ao vivo para remover recursos e recursos desnecessários.