停止<audio>标签</audio>中的音频缓冲

时间:2012-11-06 00:56:15

标签: html5 html5-audio audio-streaming buffering

我目前正在使用HTML5音频播放器通过(移动)浏览器提供音频流(24/7无线电流)。在流中加载并播放它工作正常。

主要问题是HTML5 <audio>标记将继续下载(缓冲)内容,即使它不活跃。对于移动用户来说,这可能是一个主要问题,因为他们中的大多数都支付数据使到目前为止,我还没有找到适合跨浏览器的解决方案来阻止这种情况。

我到目前为止尝试过:

  1. 按下暂停时卸载源。 &LT;这不适用于跨浏览器
  2. 删除音频播放器元素并加载新元素。这有效 说实话,这是一种非常黑客的表现方式 简单的任务。
  3. 我只是想知道在整个问题中是否有一些我忽略的东西,因为我确信我不是唯一一个有这个问题的人。

3 个答案:

答案 0 :(得分:10)

<audio>元素包含preload属性。这可以设置为&#34; none&#34;或&#34;元数据&#34;这应该会阻止音频预加载。

来源:https://developer.mozilla.org/en/docs/Web/HTML/Element/audio

答案 1 :(得分:3)

我找到了解决上述问题的可行解决方案。可以在此处找到详细说明:https://stackoverflow.com/a/13302599/1580615

答案 2 :(得分:1)

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

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

或者,缩短了:

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

现在你没有加载&#34;&#34;这是音频标签尝试加载的错误网址。您反而需要加载一个Blob制作的实际网址,该网址不包含播放音频的数据。