Reproducir emisiones de VOD registradas con la API Video Stitcher de Google Cloud
En esta guía se muestra cómo usar el SDK de IMA DAI para Android para solicitar y reproducir una sesión de streaming de vídeo bajo demanda de Google Cloud.
Esta guía amplía el ejemplo básico de la guía de inicio de IMA DAI.
Para obtener información sobre cómo integrar otras plataformas o usar los SDKs de IMA del lado del cliente, consulte SDKs de anuncios multimedia interactivos.
Si quieres ver o seguir una integración de ejemplo completa, descarga el ejemplo de Cloud Video Stitcher.
Configura un proyecto de Google Cloud.
Introduzca las siguientes variables para usarlas en el SDK de IMA:
- Ubicación
- La región de Google Cloud
en la que se creó tu configuración de VOD:
LOCATION
- Número de proyecto
- Número de proyecto de Google Cloud que usa la API Video Stitcher:
PROJECT_NUMBER
- Token de OAuth
Token de OAuth de corta duración de una cuenta de servicio con el rol de usuario Video Stitcher:
OAUTH_TOKEN
Consulta más información sobre cómo crear tokens de OAuth de corta duración. El token de OAuth se puede reutilizar en varias solicitudes siempre que no haya caducado.
- Código de red
El código de red de Ad Manager para solicitar anuncios:
NETWORK_CODE
- ID de configuración de VOD
El ID de configuración de VOD de la emisión de VOD:
VOD_CONFIG_ID
Consulta más información sobre cómo crear el ID de configuración de VOD en la guía de creación de configuraciones de VOD de Cloud Stitching.
Configurar el ejemplo básico
Ve a la página de lanzamiento de GitHub de IMA Android DAI y descarga el ejemplo básico. Este ejemplo es una aplicación Android que puedes abrir en Android Studio para hacer pruebas.
Para hacer pruebas con una emisión de VOD que no sea de Cloud Video Stitcher, defina la CONTENT_TYPE
constante en SampleAdsWrapper.java como ContentType.VOD_HLS
o ContentType.VOD_DASH
para cargar el ID de CMS y el ID de vídeo adecuados para la emisión. A continuación, en SampleVideoPlayer.java, asigna a currentlyPlayingStreamType
el valor CONTENT_TYPE_HLS
o CONTENT_TYPE_DASH
para gestionar correctamente los metadatos del tipo de emisión que hayas elegido.
Si todo funciona correctamente, al hacer clic en el botón de reproducción del reproductor de vídeo, se iniciará el cortometraje "Tears of Steel" con una pausa publicitaria pre-roll.
Solicitar una emisión de VOD
Para sustituir la emisión de muestra por tu emisión de VOD con anuncios combinados, usa
sdkFactory.createVideoStitcherVodStreamRequest()
para crear una sesión de anuncios con Google Ad Manager. Puedes usar la interfaz de Google Ad Manager para localizar las sesiones de inserción dinámica de anuncios generadas con fines de monitorización y depuración.
sdkFactory.createVideoStitcherVodStreamRequest()
está disponible en la versión 3.30.0 o posterior del SDK de inserción dinámica de anuncios de IMA.
Para usar sdkFactory.createVideoStitcherVodStreamRequest()
con el parámetro vodConfigId
, se necesita la versión 3.33.0 o una posterior del SDK de inserción dinámica de anuncios de IMA.
En el ejemplo actual, hay instrucciones condicionales para solicitar un stream de vídeo bajo demanda o un stream en directo. Para que funcione con la API Video Stitcher de Google Cloud, debes añadir una nueva ruta para devolver un StreamRequest
creado con sdkFactory.createVideoStitcherVodStreamRequest()
.
Veamos un ejemplo:
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;
}
...
Vuelve a cargar la aplicación para solicitar y reproducir tu emisión de VOD personalizada.
(Opcional) Añadir opciones de sesión de streaming
Personaliza tu solicitud de emisión añadiendo opciones de sesión para anular la configuración predeterminada de la API Cloud Video Stitcher mediante StreamRequest.setVideoStitcherSessionOptions()
.
Si proporcionas una opción no reconocida, la API Cloud Video Stitcher responderá con un error HTTP 400. Consulta la guía de solución de problemas para obtener ayuda.
Por ejemplo, puedes anular las opciones del manifiesto con el siguiente fragmento de código, que solicita dos manifiestos de emisión con representaciones ordenadas de menor a mayor tasa de bits.
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);
}
Limpieza
Ahora que has alojado correctamente un stream de vídeo bajo demanda con la API Video Stitcher de Google Cloud y lo has solicitado con el SDK de DAI de IMA para Android, es importante que elimines los recursos de servicio.
Sigue la guía para limpiar vídeos bajo demanda para quitar los recursos y los activos que no necesites.