Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery popcorn.js启动和停止时间_Jquery_Media_Popcornjs - Fatal编程技术网

Jquery popcorn.js启动和停止时间

Jquery popcorn.js启动和停止时间,jquery,media,popcornjs,Jquery,Media,Popcornjs,刚开始查看popcorn.js,但遇到了一些问题 我有一条30秒的赛道 但是,我希望文件从2秒开始播放,并在结束前3秒停止播放 有人知道这是否可能,因为我在文档中找不到它吗 或者有一个命令可以跳到时间轴上的某个点,就像 pop.playAt('2 second'); 像这样的 谢谢这里有两个简单的步骤: 1) 将视频提前到2秒 2) 确保它在27秒(30-3)时停止 要推进视频,可以使用currentTime方法,但如果在加载视频元数据之前尝试设置currentTime,则会遇到错误。(首次设

刚开始查看popcorn.js,但遇到了一些问题

我有一条30秒的赛道

但是,我希望文件从2秒开始播放,并在结束前3秒停止播放

有人知道这是否可能,因为我在文档中找不到它吗

或者有一个命令可以跳到时间轴上的某个点,就像

pop.playAt('2 second');
像这样的


谢谢这里有两个简单的步骤: 1) 将视频提前到2秒 2) 确保它在27秒(30-3)时停止

要推进视频,可以使用currentTime方法,但如果在加载视频元数据之前尝试设置currentTime,则会遇到错误。(首次设置视频时,浏览器在获取标题之前不知道持续时间是多少,并且不能将currentTime设置为晚于持续时间。)

现在,为了确保视频在27秒时停止,您可以使用“cue”方法,该方法需要数秒的时间,并在此时启动回调函数

popcorn.cue(27, function() {
  popcorn.pause();
});
现在,默认情况下,爆米花在从视频接收到“timeupdate”事件时触发事件,通常是每1/4秒(250ms)。因此,您可能会看到视频运行几帧长。(例如,它可能在27.1秒时停止)。如果您需要更高的精度,请使用frameAnimation选项,这会使popcorn尝试更新高达60fps(每16ms一次)

您还可以告诉浏览器只向web服务器请求您需要的视频部分,并在URL中添加锚定形式的提示,从而节省加载时间

http://example.com/videos/myvideo.webm#t=2,27
这取决于浏览器和web服务器的支持,但这并没有坏处


编辑:实际上,这里不使用帧动画。问题是它使用requestAnimationFrame,如果浏览器选项卡不可见,则无法保证会调用它。这对于动画来说是有意义的,但在这里不是。我可能会在popcorn.js中对此提出解决方案。

这里有两个简单的步骤: 1) 将视频提前到2秒 2) 确保它在27秒(30-3)时停止

要推进视频,可以使用currentTime方法,但如果在加载视频元数据之前尝试设置currentTime,则会遇到错误。(首次设置视频时,浏览器在获取标题之前不知道持续时间是多少,并且不能将currentTime设置为晚于持续时间。)

现在,为了确保视频在27秒时停止,您可以使用“cue”方法,该方法需要数秒的时间,并在此时启动回调函数

popcorn.cue(27, function() {
  popcorn.pause();
});
现在,默认情况下,爆米花在从视频接收到“timeupdate”事件时触发事件,通常是每1/4秒(250ms)。因此,您可能会看到视频运行几帧长。(例如,它可能在27.1秒时停止)。如果您需要更高的精度,请使用frameAnimation选项,这会使popcorn尝试更新高达60fps(每16ms一次)

您还可以告诉浏览器只向web服务器请求您需要的视频部分,并在URL中添加锚定形式的提示,从而节省加载时间

http://example.com/videos/myvideo.webm#t=2,27
这取决于浏览器和web服务器的支持,但这并没有坏处


编辑:实际上,这里不使用帧动画。问题是它使用requestAnimationFrame,如果浏览器选项卡不可见,则无法保证会调用它。这对于动画来说是有意义的,但在这里不是。我可能会在popcorn.js中对此提出一个解决方案。

感谢Brian的建议,它在一定程度上起到了作用!然而,我们现在的问题是,页面上可能有无数的播放器,但是假设页面上有两个播放器,除非页面上的第一个播放器已单击播放,否则第二个播放器无法与之交互/播放,因此您需要在第二个播放器上的控件工作之前单击第一个视频上的播放,你知道为什么会这样吗?谢谢我不知道为什么你需要不止一个球员。您正在尝试连续播放多个剪辑吗?如果你想分享你的代码,我可以看一看,看看还有什么可能被关闭。我们有大约30个可折叠的div,每个div都有不同的播放器。我们有一个50分钟的音频文件,里面有提示点。以及启动和停止时间。因此,第1组将包含0到30秒之间的21个提示点,第2组将包含31到50秒之间的20个提示点。这个问题已经通过使用“预加载”得到了半解决,但是现在我们注意到浏览器正在下载mp3、m4a和ogg文件,即使它只能支持其中的一个,然后它会下载相同的文件40次,因为页面上有40个实例!愚蠢的浏览器!浏览器必须从服务器检索视频头,以找出文件使用的编解码器,以查看是否可以读取该文件。尝试将编解码器添加到源元素,以便浏览器可以跳过该步骤。供参考:感谢Brian的这篇文章,它在一定程度上发挥了作用!然而,我们现在的问题是,页面上可能有无数的播放器,但是假设页面上有两个播放器,除非页面上的第一个播放器已单击播放,否则第二个播放器无法与之交互/播放,因此您需要在第二个播放器上的控件工作之前单击第一个视频上的播放,你知道为什么会这样吗?谢谢我不知道为什么你需要不止一个球员。您正在尝试连续播放多个剪辑吗?如果你想分享你的代码,我可以看一看,看看还有什么可能被关闭。我们有大约30个可折叠的div,每个div都有不同的播放器。我们有一个50分钟的音频文件,里面有提示点。以及启动和停止时间。因此,第1组将包含0到30秒之间的21个提示点,第2组将包含31到50秒之间的20个提示点。这个问题已经通过使用“预加载”得到了半解决,但是现在我们注意到浏览器正在下载mp3、m4a和ogg文件,即使它只能支持1