Html 停止<;中的音频缓冲;音频>;标签

Html 停止<;中的音频缓冲;音频>;标签,html,html5-audio,audio-streaming,buffering,Html,Html5 Audio,Audio Streaming,Buffering,我目前正在使用HTML5音频播放器通过(移动)浏览器提供音频流(24/7广播流)。在流中加载并播放效果很好 主要问题是,HTML5标记即使在不活动时也会不断下载(缓冲)内容。这可能是移动用户的一个主要问题,因为他们中的大多数人都为数据使用付费。到目前为止,我还没有找到一个跨浏览器的解决方案来防止这种情况 我已经试过了: 按下“暂停”时卸载源这在跨浏览器时不起作用 卸下音频播放器元件并加载一个新元件。这是有效的,但是 老实说,这是一种非常粗俗的表演方式 简单的任务 我只是想知道在整个问题中是否有我

我目前正在使用HTML5音频播放器通过(移动)浏览器提供音频流(24/7广播流)。在流中加载并播放效果很好

主要问题是,HTML5
标记即使在不活动时也会不断下载(缓冲)内容。这可能是移动用户的一个主要问题,因为他们中的大多数人都为数据使用付费。到目前为止,我还没有找到一个跨浏览器的解决方案来防止这种情况

我已经试过了:

  • 按下“暂停”时卸载源这在跨浏览器时不起作用
  • 卸下音频播放器元件并加载一个新元件。这是有效的,但是 老实说,这是一种非常粗俗的表演方式 简单的任务

  • 我只是想知道在整个问题中是否有我忽略的东西,因为我确信我不是唯一一个有这个问题的人。

    我找到了解决上述问题的可行方案。可以在此处找到详细说明:

    您可以执行以下操作来停止缓冲负载,而不会出现错误:

    var blob = new Blob([], {type: "audio/mp3"});
    var url = URL.createObjectURL(blob);
    audio.src = _url;
    
    或者,缩短为:

    audio.src = URL.createObjectURL(new Blob([], {type:"audio/mp3"});
    

    现在您没有加载“”这是音频标记尝试加载的错误url。您正在加载一个由Blob创建的实际url,该Blob不包含用于播放音频的数据。

    我已编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。我只是注意到,从DOM中删除元素并不总是分离资源。这意味着流仍在下载。@Ruben完全是的,即使当前DOM仅显示1个播放器,浏览器仍在缓存资源。我刚刚测试过,实现了一个ajaxshoutcast播放器,它确实加载了我的流超过10次,因为预加载&Ajax。如果不使用“预加载”。如果不包括音频标签,则更好,除非单击某个内容,例如,一个小的播放器按钮;)这不是一个好的解决方案,会在webkit(chrome、ios等)上抛出错误。这是最优雅的解决方案。设置为“无”不会下载任何数据,设置为“元数据”则会下载517kb的数据。我的测试是针对voscast流的。它不仅优雅,而且是实现它的方式。我把它设置为“false”就像一个noob:),设置为“none”确实有效。你也可以将其设置为“自动”。如果你有流源和ajax页面,你会遇到很多问题。浏览器正在缓存音频对象,每次加载时,您的带宽都会随着使用量的增加而增加。firefox中的错误:“媒体资源blob:无法解码”。使用类型:“video/mp4”时的错误chrome:“GET blob:416(请求的范围不可满足)”