Streams de VOD do Play registadas na API Google Cloud Video Stitcher
Este guia demonstra como usar o SDK para DAI do IMA para Android para pedir e reproduzir uma sessão de stream VOD da Google Cloud.
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 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 utilizador do Video Stitcher:
OAUTH_TOKEN
Leia mais acerca da criação de tokens OAuth de curta duraçã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 VOD
O ID da configuração de VOD para a stream VOD:
VOD_CONFIG_ID
Leia mais acerca da criação do ID de configuração de VOD no guia de criação de configuração de VOD da união na nuvem.
Configure o exemplo básico
Aceda à página de lançamento do GitHub do DAI do IMA para Android e transfira o exemplo básico. Este exemplo é uma app Android que pode abrir no Android Studio para fins de teste.
Para testar com uma stream VOD do editor de vídeo na nuvem, defina a constante CONTENT_TYPE
em SampleAdsWrapper.java como ContentType.VOD_HLS
ou ContentType.VOD_DASH
para carregar o ID do CMS e o ID do vídeo adequados para a stream. Em seguida, em SampleVideoPlayer.java, defina currentlyPlayingStreamType
como CONTENT_TYPE_HLS
ou CONTENT_TYPE_DASH
para processar corretamente os metadados do tipo de stream escolhido.
Se tudo estiver a funcionar corretamente, quando clicar no botão de reprodução no leitor de vídeo, começa o filme curto "Tears of Steel" com uma pausa para anúncios de inserção inicial.
Peça uma stream de VOD
Para substituir a stream de exemplo pela sua stream VOD com anúncios incorporados, use
sdkFactory.createVideoStitcherVodStreamRequest()
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 monitorização e depuração.
sdkFactory.createVideoStitcherVodStreamRequest()
está disponível no SDK IMA DAI v3.30.0 ou superior.
Para usar sdkFactory.createVideoStitcherVodStreamRequest()
com o parâmetro vodConfigId
, é necessária a versão 3.33.0 ou superior do SDK IMA DAI.
No exemplo existente, existem declarações condicionais para pedir uma stream VOD ou uma stream em direto. Para que funcione com a API Google Cloud Video Stitcher, tem de adicionar um novo caminho para devolver um StreamRequest
criado com sdkFactory.createVideoStitcherVodStreamRequest()
.
Segue-se 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 a app para pedir e ver a sua stream de VOD 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);
}
Limpar
Agora que alojou com êxito uma stream VOD 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 VOD para remover recursos e recursos multimédia desnecessários.