1

我创建了一个带有视频的页面并进行了设置,以便如果您单击以查看页面上的其他内容,视频会暂停。这在我的桌面上很好用,但在 iPad 或我的安卓手机等移动设备上却不行。

这是我的代码:

<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>

知道为什么这不适用于移动设备吗?

4

1 回答 1

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 处理程序,因此您需要从发布代码中获取它才能获得对播放器的引用。

于 2013-06-20T04:07:16.237 回答