簡體   English   中英

Web音頻API:如何播放和停止音頻?

[英]Web audio API: how to play and stop audio?

我在Chrome游戲中使用網絡音頻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;}

    });

每次點擊按鈕,它都會再次播放,而不是停止。

兩個問題:

  1. 這兩種播放音頻方法有什么區別?

  2. 如何手動停止聲音?

任何幫助是極大的贊賞。

您可以暫停音頻元素並將其時間設置為0 ,這樣您就可以有效地使用“停止”功能: http//jsfiddle.net/Z5ZuJ/

audio0.pause();
audio0.currentTime = 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM