Web Audio API:搜索,播放/缓冲进度

时间:2012-05-28 13:20:31

标签: google-chrome html5-audio web-audio

当您使用Chrome中的音频元素播放音频时,会出现烦人的咔嗒声和裂缝。至少在我的64位Linux安装下,即使我格式化并安装了新的Fedora版本。 (Firefox和Opera都很好,甚至是VirtualBox Windows 7中的IE9。)

但使用Web Audio API代替音频元素的演示具有完美的声音。所以我想知道我是否可以像音频元素一样使用Web Audio API?但是有些事情你似乎无法用这个API做。或者我错过了什么?我找不到的地方:

  • 在文件完全加载之前开始播放文件
  • 获取缓冲区进度更新(取决于前一点)
  • 获取播放进度更新

有没有办法使用Web Audio API执行此操作?

这是我使用它的地方:http://tinyurl.com/magnatune-player

3 个答案:

答案 0 :(得分:0)

我认为你至少应该使用<audio>进行流媒体播放。如果您愿意,可以将其视为网络音频中的MediaElementAudioSourceNode

var mediaSourceNode = context.createMediaElementSource(audioElement);

AFAIK,无法直接传输网络音频。事实上,网络音频api建议您不要:

  

4.9。 AudioBuffer接口

     

此接口表示存储器驻留音频资产(用于一次性声音和其他短音频剪辑)。其格式是非交错的IEEE 32位线性PCM,标称范围为-1 - > 1。 +1。它可以包含一个或多个通道。通常,预计PCM数据的长度将相当短(通常略小于一分钟)。 对于较长的声音,例如音乐配乐,流媒体应与音频元素和MediaElementAudioSourceNode一起使用。

答案 1 :(得分:0)

除非您使用了MediaElementAudioSourceNode(我认为它会遇到与您使用<audio>标签相同的问题)AFAIK您的问题的答案是:

  • 在文件完全加载之前开始播放文件:否。
  • 获取缓冲区进度更新(取决于前一点):可能(您可以检查XHR上的进度事件)
  • 获取游戏进度更新:否。
  • 寻求:否。

答案 2 :(得分:0)

与此同时,Chrome修复了音频播放问题。所以我不再需要任何解决方法了。