Veja streams em direto registadas com a API Google Cloud Video Stitcher
Este guia demonstra como usar o SDK de DAI para IMA para Android para pedir e ver uma stream em direto de um evento registado na API Google Cloud Video Stitcher e como inserir uma pausa para anúncios durante a reprodução.
Este guia expande o exemplo básico do guia de introdução para o IMA DAI.
Para obter informações sobre a integração com outras plataformas ou sobre a utilização dos SDKs do lado do cliente para IMA, consulte os SDKs para Anúncios Multimédia Interativos.
Se quiser ver ou acompanhar uma integração de exemplo concluída, transfira o exemplo do Editor de vídeo do Google Cloud.
Configure um projeto do Google Cloud
Introduza as seguintes variáveis para utilização no SDK para IMA:
- Location
- A região do Google Cloud
onde a configuração publicada 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 utilizador do Video Stitcher:
OAUTH_TOKEN
Leia mais sobre como criar credenciais de curta duração para contas de serviço. O token OAuth pode ser reutilizado em vários pedidos, desde que não tenha expirado.
- Código de rede
O código de rede do Ad Manager para pedir anúncios:
NETWORK_CODE
- ID da configuração de streams em direto
- O ID de configuração em direto que especificou quando criou o evento de stream em direto:
LIVE_CONFIG_ID
- Chave do recurso personalizado
- A chave do recurso personalizado do Ad Manager gerada durante o processo de criação de uma configuração para um evento de stream em direto com a API Video Stitcher:
CUSTOM_ASSET_KEY
Transfira o exemplo básico
Transfira e execute o IMA Android DAI Basic Example. Clique no botão Reproduzir no leitor de vídeo para iniciar o filme curto "Tears of Steel", que contém pausas para anúncios a cada 30 segundos.
Peça uma stream em direto
Para substituir a stream de exemplo pela sua stream em direto, tem de usar o elemento
ImaSdkFactory.createVideoStitcherLiveStreamRequest()
para criar uma sessão de anúncios com o Google Ad Manager. Pode usar a IU do Google Ad
Manager para localizar as sessões de DAI geradas para fins de monitorização e
depuração.
No exemplo existente, existem declarações condicionais para pedir uma stream VOD ou uma stream em direto. Para que funcione com a Google Cloud Video Stitcher API, tem de adicionar um novo caminho para devolver um StreamRequest
criado através de ImaSdkFactory.createVideoStitcherLiveStreamRequest()
.
Segue-se 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;
}
...
Atualize a app para pedir e ver a sua stream em direto personalizada.
(Opcional) Adicione opções de sessão de streaming
Personalize o seu pedido de stream adicionando opções de sessão para substituir a configuração predefinida da API Cloud Video Stitcher através de StreamRequest.setVideoStitcherSessionOptions()
.
Se fornecer uma opção não reconhecida, a API Cloud Video Stitcher responde com um erro HTTP 400. Consulte o
guia de resolução de problemas
para obter assistência.
Por exemplo, pode substituir as opções do manifesto com o seguinte fragmento do código, que pede dois manifestos de streams com representações ordenadas da taxa de bits mais baixa para a mais alta.
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);
}
Insira uma pausa para anúncios
A API Google Cloud Video Stitcher insere anúncios obtidos a partir da etiqueta de anúncio para cada pausa para anúncios. As pausas para anúncios são indicadas no manifesto através de marcadores de anúncios. Os marcadores de anúncios são inseridos pelo codificador de stream em direto.
Se estiver a usar a sua própria stream em direto, tem de inserir o marcador de anúncio. Para mais informações sobre os marcadores de anúncios HLS e DASH suportados, consulte a documentação de marcadores de anúncios.
Se criou uma stream em direto através da API Google Cloud Livestream, insira um evento de canal de intervalo de anúncios.
O anúncio é apresentado imediatamente após a inserção da pausa para anúncios.
Limpar
Agora que alojou com êxito uma stream em direto através da API Google Cloud Video Stitcher e a pediu através do SDK DAI para IMA para Android, é importante limpar todos os recursos de publicação.
Siga o guia de limpeza de streams em direto para remover recursos e recursos multimédia desnecessários.