本指南介绍了在为视频点播 (VOD) 视频流使用动态广告插播 (DAI) 时,如何使用 IMA SDK 实现书签功能。此处假定您使用的是有效的 IMA DAI 实现(例如使用入门中介绍的实现)。
什么是书签?
添加书签后,您可以保存相应内容,然后返回到内容流中的特定位置。假设用户观看了五分钟的内容,离开了视频流,然后返回观看。书签可保存用户在视频流中的位置,使视频流能够从上次停下的位置继续播放,从而为观看者提供无缝体验。
DAI 在幕后添加书签
为 DAI 视频流添加书签时,您必须记录视频流 ID 以及用户离开视频的时间。当用户返回时,重新请求流并找到已保存的时间。由于所请求的信息流的每个实例都可以有时长不同的广告插播时间点,因此简单的保存时间将不起作用。您真正想做的是从相同的内容时间继续。
有求解的转换方法
IMA SDK 提供了一对方法,用于请求给定内容流的时间内容时间,以及请求内容内容时间的内容时间。使用这些转换方法,您可以存储已添加书签的内容时间,然后在该流的新实例中查找相应的流时间。具体方法如下:包含一个指向示例应用的链接,该应用中显示一个有效的书签实现。
正在保存书签
在Activity
暂停时保存书签。
private double bookmarkTime;
@Override
public void onPause() {
super.onPause();
double streamTime = videoPlayer.getCurrentPosition() / 1000.0; // ms to s.
bookmarkTime = streamManager.getContentTimeForStreamTime(streamTime);
}
正在加载书签
在重新请求视频流时加载书签。它是实现 VideoStreamPlayer
接口的一部分。
public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
// Set video player's stream URL and subtitles, and play the stream.
...
// Bookmarking.
if (bookmarkTime > 0) {
double streamTime =
streamManager.getStreamTimeForContentTime(bookmarkTime);
videoPlayer.seek((long) (streamTime * 1000.0)); // s to ms.
}
}
示例应用
下载示例应用,查看添加书签的操作示例。