3

使用 VideoJS 停止视频的最佳方法是什么?我一直在使用 pause() 方法停止视频,然后隐藏视频标签,但我遇到了一个用例,我会尝试在视频仍在加载/缓冲时停止视频。在视频仍在缓冲时调用 pause() 方法的问题是视频尚未播放,因此 pause() 方法什么也不做。

所以发生的事情是视频继续缓冲,视频缓冲后,视频开始播放。(因为我在停止视频时隐藏了视频,所以我看不到视频正在播放,但我可以听到它还在播放。)

为了解决这个问题,我可以监听播放器何时调度“timeupdate”事件,如果视频应该暂停,则立即暂停视频。但是,这似乎是一种 hack,并且在其他用例中必然会出错。

我真的希望 VideoJS 有一个专用的 stop() 函数。也许在下一个版本中。@see https://github.com/zencoder/video-js/issues/296

如果视频仍在缓冲,谁能告诉我如何停止视频?

更新: 所以我尝试实现我最初想到的解决方案:在调度“timeupdate”事件并且应该停止播放器时调用“停止”函数。然而,我发现了一些奇怪的东西。播放器处于停止状态时未调度任何事件。

然后我创建了一个 timeOut 函数来每秒调用一次。在timeOut 函数中,我检查了videoJS 播放器的当前时间(即_myPlayer.currentTime())并将其写入控制台。当前时间始终保持不变:0 秒。但是,我可以听到视频推进/播放。视频播放器似乎与我所听到的无关。

UPDATE2: 以防万一信息有价值,我更新了原始帖子以包括我在停止视频时隐藏视频标签的事实:即 $("#playerID").hide()

4

1 回答 1

1

看起来在这个 VideoJS 版本中没有解决这个问题的方法,也许在未来的版本中。

现在,您可以尝试加载单帧“空”视频来代替当前缓冲的视频。并将预载设置为“关闭”。

或者按照您的建议使用“timeupdate”调用 pause() 。

希望能帮助到你..

于 2013-04-26T14:19:25.260 回答