使用VideoJS停止视频?

问题描述:

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

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

要解决此问题,我可以听取播放器何时发送“timeupdate”事件,然后在视频暂停时立即暂停视频。但是,这看起来像是一种黑客攻击,并且在其他用例中会出现错误。

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

任何人都可以告诉我如何停止视频,如果它仍然缓冲?

UPDATE: 于是,我就实现,我原本以为的解决方案:调用“停止”功能,在调度“timeupdate”事件,玩家应该停止。但是,我发现一些奇怪的东西。玩家在处于停止状态时没有发送任何事件。

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

UPDATE2: 以防万一的信息是有价值的,我更新了原来的职位,包括我隐藏视频标签的事实,当我停止视频:即$(“#playerID”)隐藏()

+0

使用预紧=“关”视频 – 2013-04-26 14:07:44

+0

什么是它加载前停止正在播放的视频用例?你不能只是预加载/自动播放为假? – heff 2013-04-26 19:36:00

+0

@heff用例是这是在一个视频应用程序。用户选择一个视频缩略图并加载视频并开始播放。用户可以随时停止视频并返回主界面。 – jaxim 2013-04-26 19:48:40

看起来这个VideoJS版本没有解决这个问题的方法,可能在将来的版本中。

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

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

希望它可以帮助..