播放通过 Google Cloud Video Stitcher API 注册的直播
本指南将演示如何使用 IMA DAI SDK Android 可请求和播放 通过 Google Cloud 视频拼接器注册的事件的 API 以及如何 在播放过程中插入广告插播时间点。
本指南是对使用入门 指南 。
有关与其他平台集成或使用 IMA 客户端 SDK,请参阅互动式媒体广告 SDK。
设置 Google Cloud 项目
输入以下变量以在 IMA SDK 中使用:
- 位置
- Google Cloud 区域
创建实时配置的位置:
LOCATION
- 项目编号
- 使用 Video Stitcher API 的 Google Cloud 项目编号:
PROJECT_NUMBER
- OAuth 令牌
具有视频拼接器用户的服务账号的短期有效 OAuth 令牌 角色:
OAUTH_TOKEN
详细了解 为服务创建短期有效凭据 账号。 该 OAuth 令牌可以跨多个请求重复使用,只要它尚未 已过期。
- 广告资源网代码
用于请求广告的 Ad Manager 广告资源网代码:
NETWORK_CODE
- 直播配置 ID
- 您在创建直播活动时指定的直播配置 ID:
LIVE_CONFIG_ID
- 自定义素材资源键
- 在创建
直播活动配置
视频拼接器 API:
CUSTOM_ASSET_KEY
下载基本示例
下载并运行 IMA Android DAI 基本示例。点击 视频播放器上的播放按钮来开始播放短片“ “钢”,包含每 30 秒的广告插播时间点。
申请直播
要将选段直播替换为您的直播,您需要使用
ImaSdkFactory.createVideoStitcherLiveStreamRequest()
创建与 Google Ad Manager 的广告会话您可以使用 Google Ads
用于找到生成的 DAI 的管理工具界面
会话进行监控和
调试目的。
现有示例中,有一些用于请求视频点播的条件语句
还是直播为了使其与 Google Cloud Video Stitcher API 搭配使用,您需要添加一个新路径,以返回使用 ImaSdkFactory.createVideoStitcherLiveStreamRequest()
创建的 StreamRequest
。
示例如下:
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;
}
...
请重新加载应用,以便请求并播放你的自定义直播。
(可选)添加在线播放会话选项
通过添加会话选项来覆盖默认设置,自定义你的直播请求
使用 Cloud Video Stitcher API 配置
StreamRequest.setVideoStitcherSessionOptions()
。
如果您提供的选项无法识别,Cloud Video Stitcher API 将返回 HTTP 400 错误。请查阅
问题排查指南
以获取帮助。
例如,您可以替换 清单选项 该代码段可请求两个流式传输清单, 将视频流从低到高排序
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(
"includeRenditions", List.of(
Map.of(
"bitrateBps", 3000, "codecs",
"hvc1.1.4.L126.B0, mp4a.40.2"),
Map.of(
"bitrateBps", 2000,
"codecs", "avc1.64001f, mp4a.40.2")
),
"bitrateOrder", "ascending"
)
);
/* sessionOptions JSON structure.
* {
* "manifestOptions": {
* "includeRenditions": [
* {"bitrateBps": 3000, "codecs": "hvc1.1.4.L126.B0, mp4a.40.2"},
* {"bitrateBps": 2000, "codecs": "avc1.64001f, mp4a.40.2"},
* ],
* "bitrateOrder": "ascending"
* }
* };
*/
streamRequest.setVideoStitcherSessionOptions(sessionOptions);
adsLoader.requestStream(streamRequest);
}
插入广告插播时间点
Google Cloud Video Stitcher API 会为每个广告插播时间点插入从广告代码检索到的广告。广告插播时间点在清单中使用广告标记来表示。广告标记由直播编码器插入。
如果您使用的是自己的直播,则需要插入广告标记。如需详细了解支持的 HLS 和 DASH 广告标记,请参阅广告标记文档。
如果您使用 Google Cloud Livestream API 创建了直播,请插入广告插播频道事件。
插入广告插播时间点之后,广告会立即播放。
清理
现在,您已成功使用 Google Cloud Video Stitcher API 托管了直播,并使用 Android 版 IMA DAI SDK 请求了该直播,请务必清理所有广告投放资源。
请按照直播清理指南移除所有不需要的资源和资产。