我创建了一个包含视频的页面并进行了设置,这样如果您点击查看页面上的其他内容,视频就会暂停。这在我的桌面上运行良好,但不适用于iPad或我的Android手机等移动设备。
这是我的代码:
<script language="javascript" type="text/javascript">
var player;
var videoPlayer;
function onTemplateLoaded(experienceId) {
player = brightcove.getExperience(experienceId);
videoPlayer = player.getModule(APIModules.VIDEO_PLAYER);
}
function togglePause() {
videoPlayer.pause();
}
</script>
出于测试目的,我在页面上按了一个按钮,然后点击它调用“togglePause”功能。
<button onclick="togglePause()">PLAY</button>
知道为什么这不适用于移动设备吗?
答案 0 :(得分:0)
我认为您需要指定templateReady处理程序并将APIModules.VIDEO_PLAYER模块的初始化移动到该模块。这是一个非常常见的错误,只使用templateLoadHandler大部分时间都可以在桌面上运行,因此它可以吸引很多人使用移动设备。
请参阅http://support.brightcove.com/en/video-cloud/docs/getting-started-smart-player-api
中的以下注释重要提示:了解加载的模板与之间的区别 模板准备事件:
templateLoad:已收到播放器和API的所有数据 浏览器,你现在可以获得对整个播放器的引用( BrightcoveExperience) - 玩家还没有完全设置好, 如果你现在尝试在它上面调用任何方法,那么你就是 设立比赛条件
templateReady:玩家现在已经 完全实例化,并准备通过API与您进行交互 - 您 应该只在模板就绪后调用API模块的方法 事件已经解雇
为避免过早调用方法,可以跳过 templateLoad事件,只处理templateReady事件。该 这样做的缺点是玩家ID没有传递给 templateReady处理程序,因此您需要从发布中获取它 代码,以获得对播放器的引用。