Web Audio API:寻找、播放/缓冲进度

3
使用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

除非您使用了MediaElementAudioSourceNode(我认为它们会遇到与您遇到的相同问题,因为它只是使用了一个<audio>标签),据我所知,您的问题的答案如下:

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

0
与此同时,Chrome已经解决了音频播放问题。所以我不再需要任何变通方法了。

0

我认为你至少应该仍然使用<audio>进行流媒体传输。如果你愿意,你可以将其视为Web音频中的MediaElementAudioSourceNode

var mediaSourceNode = context.createMediaElementSource(audioElement);

据我所知,目前没有直接流式传输网络音频的方法。实际上,Web Audio API 也建议不要这样做:

4.9. AudioBuffer 接口

该接口表示一个常驻内存的音频资源(用于一次性音效和其他短音频片段)。它的格式是非交错的IEEE 32位线性PCM,其范围在-1到+1之间。它可以包含一个或多个通道。通常情况下,PCM数据的长度应该相对较短(通常少于一分钟)。对于更长的声音,比如音乐配乐,应该使用音频元素和 MediaElementAudioSourceNode 进行流式传输。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接