3
我在Chrome的遊戲中使用網絡音頻API。要播放聲音,我使用網絡音頻API。網絡音頻API:如何播放和停止音頻?
我學會從文章:http://www.html5rocks.com/en/tutorials/webaudio/intro/
window.onload = init;
var context;
var bufferLoader;
function init() {
context = new webkitAudioContext();
bufferLoader = new BufferLoader(
context,
[
'0.mp3',
'2.mp3',
],
finishedLoading
);
bufferLoader.load();
}
function finishedLoading(bufferList) {
var source1 = context.createBufferSource();
var source2 = context.createBufferSource();
source1.buffer = bufferList[0];
source2.buffer = bufferList[1];
source1.connect(context.destination);
source2.connect(context.destination);
source1.noteOn(0);
source2.noteOn(0);
}
然而,聲音是沒有打過。別說我想用noteOff(0)稍後停止它們。
然後我發現這篇文章http://updates.html5rocks.com/2012/02/HTML5-audio-and-the-Web-Audio-API-are-BFFs
而且我改變我的代碼:
var context = new webkitAudioContext();
var analyser = context.createAnalyser();
var source;
var audio0 = new Audio();
audio0.src = '0.mp3';
audio0.controls = true;
audio0.autoplay = true;
audio0.loop = true;
source = context.createMediaElementSource(audio0);
source.connect(analyser);
analyser.connect(context.destination);
這一次更是打出了!
而我的問題在於:我想用按鈕停止聲音。
我試圖改變audio0.autoplay = false;
var play0 = false;
$("#0").click(function(){
if(play0===false){
audio0.src = '0.mp3';
audio0.controls = true;
audio0.autoplay = true;
audio0.loop = true;
source = context.createMediaElementSource(audio0);
source.connect(analyser);
analyser.connect(context.destination);
play0=true;}
if(paly0){
audio0.autoplay=false;}
});
代替停止,它每次點擊按鈕時再次播放。
兩個問題:
什麼是這兩種音頻播放方式之間的區別?
如何手動停止聲音?
任何幫助,非常感謝。
你想'audio0.pause()'? – pimvdb
@primvdb,不,但停止。 – kikkpunk
沒有停止,所以只需按照pimvdb的建議暫停。 –