2013-05-27 3 views
1

Я пытаюсь, так как название читает игру buzz.js звуковые объекты один за другим. Я попытался использовать обратный вызов events - ended, но это становится строгим с большим набором файлов. Я думал, что смогу создать свой список звуков, прокрутить их и вызвать связывание один раз, но это не сработало, так как итерация не дожидалась завершения вызова. Я использую node.js.Воспроизведите один звук за другим с buzz.js

Вот что я до сих пор:

var mySound1 = new buzz.sound("/sound/001000.mp3"); 
var mySound2 = new buzz.sound('/sound/001001.mp3'); 
var mySound3 = new buzz.sound('/sound/001002.mp3'); 


     for (var i = 0, max = 3; i < max; i++) { 
      var sPath = '/sound/001' + soundArray[i].value + '.mp3'; 

      var sound1 = new buzz.sound(sPath); 
      sound1.play().bind('ended', function(e){ 
         //here i want sound1 to finish before sound2 plays and so forth 
      }); 
     } 

Как я могу ждать, пока SOUND1 не завершится до SOUND2 начинает играть в динамике?

ответ

2

Вероятно, не самое элегантное решение, жужжание позволяет определить группы, которые можно использовать вместо массива, но:

Попробуйте добавить все файлы, которые вы хотите играть в массив, затем петли через указанный массив привязывает завершенное событие к каждому элементу, который запускает следующую песню для воспроизведения.

Очень простой пример:

var files = [new buzz.sound('audio1.mp3'), new buzz.sound('audio2.mp3'), new buzz.sound('audio3.mp3')]; 

files.forEach(function(element, index) { 
    element.bind('ended', function(e) { // when current file ends 
     files[index+1].play(); // trigger the next file to play 
    }); 
}) 

files[0].play(); // start the first file that triggers the rest 
+0

Еще не ждет, все звуки играют одновременно – Warz

+0

отредактированных ответ выше, чтобы использовать цикл ForEach, чтобы вызвать следующий файл для воспроизведения – nicangeli

+0

Существуют fork и pull, который обрабатывает звуковые объекты, созданные в группе, когда вы устанавливаете режим воспроизведения, т. е. сочетание «цепочка» стихов. Оригинальный автор не потянул и не объединил его, так что до тех пор я бегу от вилки. Спасибо за вашу идею здесь, хотя – Warz

Смежные вопросы