书签
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本指南介绍了如何使用 IMA DAI SDK 实现书签功能
。
这里假定一个有效的 IMA DAI 实现(如
开始使用。
什么是添加书签?
书签是指先保存书签,然后再返回到特定位置
。假设一位用户观看了 5 分钟的内容
离开视频流,然后返回视频流。书签功能可保存
用户在视频流中的位置,以便流式传输能够从其位置
从而为观看者提供顺畅的体验
DAI 书签功能探秘
为 DAI 视频流添加书签时,您必须记录视频流 ID 和时间
当用户离开视频时触发。当用户返回时,系统会重新请求
流式传输并跳转至保存的时间。由于请求的
只需保存视频流即可设置不同时长的广告插播时间点
时间不会行。您真正想做的是
内容时间。
需要解决的转换方法
IMA DAI SDK 提供了两种方法来请求内容时间
特定直播时间以及特定内容的直播时间
时间。借助这些转换方法,您可以存储已添加书签的
content time,然后定位到
流的新实例。方法如下所示,包括一个链接
到一个示例应用,该应用展示了有效的书签添加实现。
保存书签
在 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.
}
}
示例应用
下载示例应用
查看书签实施。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-29。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-08-29\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-08-29。"]]