播放AudioBufferSourceNode两次?
问题描述:
我应该能够使用相同的AudioBufferSourceNode
多次播放声音吗?由于某种原因,即使拨打noteOff
,第二次拨打noteGrainOn
也不会播放音频。播放AudioBufferSourceNode两次?
此代码只播放声音一次:
var node = audioContext.createBufferSource()
node.buffer = audioBuffer
node.connect(audioContext.destination)
var now = audioContext.currentTime
node.noteGrainOn(now, 0, 2)
node.noteOff(now + 2)
node.noteGrainOn(now + 3, 0, 2)
node.noteOff(now + 5)
答
我有一些黑客切换播放/暂停轻松:) 您可以直接在音频到现有的音频标签映射,并使用它
<audio id="sound" src="./test.mp3" controls="controls"></audio>
var audioElement = document.getElementById('sound');
source = audioContext.createMediaElementSource(audioElement);
/* ... */
audioElement.pause();
我的例子运行这里的控制:http://www.b2bweb.fr/bonus/Braincer/ 我目前使用Chrome打造18.0.xxxx
其他裁判:
感谢您的回答和FAQ。 – alltom 2012-02-25 00:03:58
如您所说,这似乎不可行http://www.html5rocks.com/en/tutorials/webaudio/intro/#toc-volume需要重新加载。我也有麻烦重新加载使用currentime // play = function(){source.noteOn(now); },pause = function(){now = audioContext.currentTime; source.noteOff(0); } – molokoloco 2012-03-23 04:18:27