为了账号安全,请及时绑定邮箱和手机立即绑定

HTML5视频:强制中止缓冲

HTML5视频:强制中止缓冲

交互式爱情 2019-11-27 10:14:22
如何在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视频元素停止缓冲。
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

使用preload =“ none”,这是我在暂停视频后强制中止缓冲,然后使用jQuery在暂停的位置恢复播放的方式。


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


<script>

jQuery(function() {


  var video = jQuery('video').get(0);


  video.addEventListener('pause',function(){

     var tmp_src = video.src;

     var playtime = video.currentTime;

     video.src = '';

     video.load();

     video.src = tmp_src;

     video.currentTime = playtime;

  });


});

</script>


查看完整回答
反对 回复 2019-11-27
?
波斯汪

TA贡献1811条经验 获得超4个赞

关键步骤似乎是在调用之前不要将其设置src为空白值load()。我已经成功做到了这样:


var wasPlaying = !audioPlayer.paused;

audioPlayer.currentTime = 0.0; // Optional -- can be left out for pause

audioPlayer.pause();


if (wasPlaying) { // This prevents the browser from trying to load the entire source

    audioPlayer.load();

}

在Win10上的Chrome和Firefox中,这都会引发中止事件。在我的特定情况下,需要关闭套接字,否则套接字将无限期保持打开状态,这导致在同一页面上使用多个播放器时,每个服务器的连接数达到六个限制。


查看完整回答
反对 回复 2019-11-27
  • 3 回答
  • 0 关注
  • 1179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信