YouTube stopVideo()暂停而不是停止?

时间:2014-09-15 15:22:02

标签: youtube youtube-api

我的网站正在运行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":""}', '*');
});

谢谢!

2 个答案:

答案 0 :(得分:2)

当模态打开时,您可以使用seekTo返回视频的开头。 在seekTo

之后播放视频

Doc from API

  

player.seekTo(seconds:Number,allowSeekAhead:Boolean):Void

     

寻找视频中的指定时间。如果播放器暂停时   该函数被调用,它将保持暂停状态。如果功能是   从其他状态(播放,视频提示等)调用,播放器将   播放视频。 seconds参数标识时间   球员应该前进。

     

在此之前,玩家将前进到最近的关键帧   除非播放器已经下载了视频部分   用户正在寻求。在这种情况下,玩家将前进到   指定时间之前或之后的最接近的关键帧   Flash播放器的NetStream对象的seek()方法。 (见Adobe的   文档以获取更多信息。)

     

allowSeekAhead参数确定玩家是否会创建   如果seconds参数指定时间,则向服务器发出新请求   在当前缓冲的视频数据之外。

     

我们建议您在用户拖动时将此参数设置为false   鼠标沿着视频进度条,然后将其设置为true   用户释放鼠标。这种方法允许用户滚动到不同的   通过滚动请求新视频流的视频点   过去视频中的无缓冲点数。当用户释放鼠标时   按钮,播放器前进到视频中的所需点   如有必要,请求新的视频流。

答案 1 :(得分:1)

我也遇到过这个问题,花费数小时深入研究它。但是我没有找到确定的理由,但原因如下:

  

(" stopVideo()")停止并取消加载当前视频。

  

重要提示:与暂停视频功能使播放器处于暂停(2)状态不同,stopVideo功能可以将播放器置于任何不播放状态,包括结束(0),暂停(2),视频提示( 5)或未启动(-1)。

引自the YouTube API page

但我对此感到困惑,因为即使停止和暂停api之间的背景机制不同,它们的行为仍然相同(有时),所以我仍然对真实感到困惑和好奇stopVideo()的用法。