我的网站正在运行Bootstrap 3.0,我在YouTube上有一个介绍视频和全长视频,我正在尝试实现。当页面加载时,介绍视频会自动播放,然后我有一个按钮打开一个模式窗口,其中包含完整的视频和音频。
我想在模式窗口关闭时完全停止视频,这样,如果他们再次单击按钮打开它,视频就会从头开始。不幸的是,stopVideo功能似乎并没有像我预期的那样工作。基本上,它只是暂停视频,所以如果我打开模态备份,视频就会从它停止的地方开始播放
如果重新打开,我如何才能使视频从一开始就停止和开始?
这是我当前的代码:
$('#myModal').on('show.bs.modal', function () {
$('#placeholder')[0].contentWindow.postMessage('{"event":"command","func":"' + 'pauseVideo' + '","args":""}', '*');
$('#full')[0].contentWindow.postMessage('{"event":"command","func":"' + 'playVideo' + '","args":""}', '*');
});
$('#myModal').on('hidden.bs.modal', function () {
$('#full')[0].contentWindow.postMessage('{"event":"command","func":"' + 'stopVideo' + '","args":""}', '*');
$('#placeholder')[0].contentWindow.postMessage('{"event":"command","func":"' + 'playVideo' + '","args":""}', '*');
});
谢谢!
当模态打开时,您可以使用seekTo
回到视频的开头。在seekTo
之后播放视频
API 文件
player.seekTo(秒:数字,allowSeekAhead:布尔值):无效
在视频中查找指定的时间。如果播放器在函数被调用时,它将保持暂停状态。如果函数为从另一种状态调用(播放、视频提示等),玩家将播放视频。seconds参数标识球员应该晋级。
玩家将在该时间之前前进到最近的关键帧除非播放器已经将视频的该部分下载到用户正在寻找。在这种情况下,玩家将前进到指定时间之前或之后最近的关键帧,由Flash播放器的NetStream对象的seek()方法。(请参阅Adobe有关详细信息,请参阅文档。)
allowSeekAhead参数决定玩家是否如果seconds参数指定时间,则向服务器发出新请求在当前缓冲的视频数据之外。
我们建议您在用户拖动时将此参数设置为false鼠标沿着视频进度条移动,然后在用户释放鼠标。这种方法允许用户滚动到不同的不通过滚动请求新视频流的视频点超过视频中未缓冲的点。当用户释放鼠标时按钮,玩家前进到视频中所需的点,然后如果需要,请求新的视频流。
我也遇到了这个问题,花了几个小时深入研究。但我没有找到确切的原因,但可能是以下原因:
("stopVideo()")停止并取消加载当前视频。
和
重要提示:与pauseVideo功能不同,它会使播放器处于暂停(2)状态,stopVideo功能可以使播放器处于任何未播放状态,包括结束(0)、暂停(2、视频提示(5)或未开始(-1)。
这是引用自YouTube API页面
但我对此感到困惑,因为即使停止和暂停api之间的后台机制不一样,它们的行为仍然相同(有时),所以我仍然对stopVideo()的真实用法感到困惑和好奇。