HTML5视频:强制中止缓冲

前端之家收集整理的这篇文章主要介绍了HTML5视频:强制中止缓冲前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在HTML5视频上强制终止事件?我有一个重叠,在哪里,当我关闭它,视频应该暂停播放,然后停止缓冲。然而,我的互联网连接继续坚果。哦,我在Mac OS X 10.6上使用Chrome 7.0.5。

我试过几件事 – 他们都没有工作:

(对于那些不熟悉XUI的人,x $就像jQuery包装函数)

首先,分派中止HTML事件:

var videoEl = x$('#video_el')[0];
videoEl.pause();
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent('abort',false,false);
videoEl.dispatchEvent(evObj);

接下来,改变src,然后强制加载:

var videoEl = x$('#video_el')[0];
videoEl.pause();
videoEl.src = "";
videoEl.load(); //tried with and without this step

编辑:我的视频元素看起来像这样:

<video id="video_el" src="<video_url>" preload="none" controls="controls" />

同样,这些都没有工作。任何人遇到这个问题之前?有什么建议么?

总之,我试图强制HTML5视频元素停止缓冲。

谢谢!

解决方法

好吧,所以对于最后几天我真的一直在努力这个问题。
这里是我的分析和解决方案:

总之,我试图解决的问题:
我注意到,当播放器暂停时,HTML5播放器不会停止下载(即使在一段合理的时间之后)。使用一个24/7的音频流和开发移动网站我意识到,这是远远不是最佳的考虑到高数据使用率,如果他们离开网站开放 – 虽然我认为我会让一些电信公司非常高兴“俯瞰“ 这个问题…
只是为了澄清,我真的不关心固定长度的文件。下载完整的文件是大多数时候查看在线资源所需的功能(想慢连接),所以没有我试图阻止。

分析:
HTML5音频元素没有stop()函数,也没有一个选项,您可以设置允许缓冲的数据量,或者说要让元素停止缓冲的方式 – 不要将其与“preload”函数混淆,这只适用于播放按钮被点击之前的元素。
我没有线索为什么这是,为什么这个功能不可用。如果任何人可以向我解释为什么这些关键功能没有实现在一个标准,应该使Web开发手机更好,更标准化我想知道。

解:
我发现在音频元素中实现(一种)停止函数的唯一工作解决方案如下:
1.暂停当前播放器 – 您可以通过audio.addEventListener(‘pause’,yourFunction)挂起播放器上的暂停事件;
2.将源设置为空 – audio.src =“”;
3.加载src – audio.load();
4.删除整个音频元素
5.插入未定义源的新HTML5音频元素
6.设置源(首先在那里的源) – audio.src =“old source url
7.重新挂起暂停事件 – audio.addEventListener(‘pause’,current-function);

iOS需要完全注入新的HTML5音频播放器。只需重置src然后加载它会导致播放器在我的情况下“自动播放”…

对于懒人(包括jQuery):

var audio = $("audio").get(0);
audio.pause(0);
var tmp = audio.src;
audio.src = "";
audio.load();
$("audio").remove();

$("#audio-player").html("<audio controls preload='none'></audio>");<br>
audio = $("audio").get(0);
audio.src = tmp;
audio.addEventListener('pause',current-function);

按下暂停将导致您的访问者丢失音频/视频文件中的当前位置,并将重新开始。我没有这个问题的解决方案。然后再次,如果你正在处理一个直播流,这个解决方案应该很好。

希望这可以帮助。

猜你在找的HTML5相关文章