您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

HTML5视频:强制中止缓冲

HTML5视频:强制中止缓冲

好的,所以在过去的几天里,我一直在努力解决这个问题。 这是我的分析和解决方案:

简而言之,我尝试解决的问题是: 我注意到HTML5播放器暂停时,播放器并没有停止下载(完全没有,即使经过了一段合理的时间)。通过使用24/7音频流并开发移动网站,我意识到考虑到如果访客保持开放状态会占用大量数据,这对我的访问者来说并不是最佳选择- 尽管我确实认为我可以通过“忽略”让一些电信公司感到非常高兴“这个问题。 只是为了澄清,我并不真正关心固定长度的文件。在大多数情况下,下载完整文件是查看联机资源(认为连接缓慢)所需的功能,因此我没有尝试阻止此功能

分析: HTML5音频元素没有stop()函数,也没有可以设置允许缓冲的数据量的选项,或者说您希望元素停止缓冲的一种方式- Don请勿将其与“预加载功能混淆,这仅适用于单击播放按钮之前的元素。 我不知道为什么会这样,为什么无法使用此功能。如果有人能向我解释为什么这些关键功能没有按标准执行,该标准应该使手机的Web开发更好,更标准化,我很想知道。

解决方案: 我发现在音频元素中实现(多种)停止功能的唯一可行解决方案如下: 1.暂停当前播放器-您可以通过audio.addEventListener(’pause’, yourFunction); 2.将源设置为空-audio.src =“”; 3.加载src-audio.load(); 4.删除整个音频元素 。5.插入未定义源的新HTML5音频元素 。6.设置源(首先存在的源)-audio.src =“旧源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);

按下暂停将使您的访客失去音频/视频文件中的当前位置,并且它将重新开始。我没有解决这个问题的方法。再说一次,如果您要处理实时流,此解决方案应该没问题。

希望这可以帮助。

其他 2022/1/1 18:17:30 有503人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶