Web audio API: comment jouer et arrêter l'audio?

je utiliser l'API web audio dans mon jeu en Chrome. Pour lire le son, j'utilise l'API web audio.

Je l'apprendre à partir de l'article: 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);
}

Cependant, les sons n'ont pas joué. Laissez seul, je veux utiliser note-off est détectée(0) pour les arrêter plus tard.

Ensuite, j'ai trouvé cet article http://updates.html5rocks.com/2012/02/HTML5-audio-and-the-Web-Audio-API-are-BFFs

Et j'ai modifier mon code pour:

    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);

Cette fois, c'est joué!

Et voici mon problème: je veux arrêter le son avec un bouton.

J'ai essayé de changer le 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;}

    });

Au lieu de se arrêter, il est joué de nouveau à chaque fois que je clique sur le bouton.

Deux questions:

  1. quelle est la différence entre ces deux méthodes audio?

  2. Comment puis-je arrêter le son manuellement?

Toute aide est grandement appréciée.

Voulez-vous audio0.pause()?
non , mais stop .
Il n'y a pas d'arrêt, il suffit donc de le mettre en pause comme pimvdb suggère.
Vous pouvez combiner cette - .pause() et puis .currentTime = 0;.
pouvez-vous écrire un peu de code de l'échantillon? je ne sais pas beaucoup au sujet de l'encodage. alors...

OriginalL'auteur kikkpunk | 2012-10-28