我正在尝试在Google Chrome Canary版本中实施并启用W3C Web Audio API。 (目前我在Windows 7 x64上有15.0.865.0 canary)Demo applications工作得很好。
我喜欢使用MediaElementAudioSourceNode
,因为我喜欢播放更大的OGG音乐。对于此类音频文件,API表示我应该使用此代替AudioBufferSourceNode
。
我写了一个非常简单的例子:
<script type="text/javascript">
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', 'dubfx.ogg');
var audioContext = new webkitAudioContext();
var streamingAudioSource = audioContext.createMediaElementSource(audioElement);
streamingAudioSource.connect(audioContext.destination);
</script>
然而,我只是听到点击而不是实际的音频。我在JavaScript控制台中看不到任何错误,所以我猜代码没问题,可能缺少一些初始化。如果我通过Web Audio API调用audioElement.play()
而不是路由,则音乐播放就可以了。我错过了什么或者当前的WebKit实现是否被破坏了?
答案 0 :(得分:8)
今天与Chris Rogers(规范编辑)讨论了这个问题。 MediaElementAudioSourceNode
在Canary / Chromium版本中暴露,但内部结构尚未连接。在将<audio>
标记与Web Audio API一起使用之前,还需要一段时间。