2013-03-17 6 views
2

Как мы можем зацикливать один и тот же аудиофайл в soundamanager2 ??Как закодировать звук в soundmanger2

это мой пример кода

function playSound(url) { 
      soundManager.setup({ 
      url: 'swf', 
      onready: function() { 
       soundManager.createSound({ 
       id: 'samplesound', 
       url: url, 
       volume: 100 
       }); 
       soundManager.play('samplesound'); 
       } 
      }); 
     } 

назвав его с тэгом как

<a href='javascrit:void(0);' onclick='playSound('url');'></a> 

кто может вести меня к петле этот звук непрерывно в течение соответствующего времени ??

Спасибо за помощь ...

ответ

3

Вы можете зациклить звук с помощью команды воспроизведения

Следующая должна воспроизводить звук 3 раза

soundManager.play('samplesound',{loops: 3}); 

хак, чтобы получить петли работает может быть

var loops = 3; 
var looped = 0; 
    soundManager.createSound({ 
        id: 'samplesound', 
        url: url, 
        volume: 100, 
         onfinish:function() { 
         if(looped<loops){ 
          soundManager.play('samplesound'); 
          looped++; 
          } else{ 
          looped = 0; 
          } 
        )} 
        }); 

см

http://www.schillmania.com/projects/soundmanager2/demo/api/

и

http://www.schillmania.com/projects/soundmanager2/doc/#smsoundmethods

+0

это не работает Такер, я уже пробовал это –

+0

@luvboy делает это играть вообще? какие ошибки вы получаете в консоли ошибок? – Tucker

+0

Я пробовал бесконечный цикл, который работает ... но как я могу остановить звук, скажем, через 3 или 4 раза? –

0

Чтобы установить значение по умолчанию в "цикле: 1" будет играть каждый звук только один раз. На моем сайте Loop: 2 будет играть снова и снова. На их демо-странице, они петлевой его "петли: 3"

soundManager.defaultOptions = {

loops: 2 

}; 
1

Используйте эту функцию полезности:

function loopSound(sound, times) { 
    var current = 0; 
    _loopSound(sound, times, current); 
    function _loopSound(sound, times, current) { 
     if (++current <= times) { 
      sound.play({ 
       onfinish : function() { 
        _loopSound(sound, times, current); 
       } 
      }); 
     } 
    } 
} 

var mySound= soundManager.createSound({ 
       url: '/mySound.mp3' 
      }); 
loopSound(mySound, 3); 
+0

Я не думаю, что это остановит цикл, если вы остановите воспроизведение файла с использованием .stop() или .pause(), правильно? – babycakes

+1

@babycakes Вы должны проверить, но я считаю, что этого не произойдет, потому что цикл будет продолжать вызывать play() N раз рекурсивно. –

0

Это работает для меня:

soundManager.play('mysound', { loops: Infinity });

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

  • Нет связанных вопросов^_^