2015-08-14 4 views
1

Если у вас есть два звука в soundmanager2, вы можете играть одновременно, на Android и других мобильных телефонах, играющих на одном звуке, остановит все остальные звуки.SoundManager2 Воспроизведение нескольких звуков сразу на Android

soundManager.setup({ 
    preferFlash: false, 
    //, url: "swf/" 
    onready: function() { 
     soundManager.createSound({ 
      url: [ 
       "http://www.html5rocks.com/en/tutorials/audio/quick/test.mp3", "http://www.html5rocks.com/en/tutorials/audio/quick/test.ogg" 
      ], 
      id: "music" 
     }); 
     soundManager.createSound({ 
      url: [ 
       "http://www.w3schools.com/html/horse.mp3", "http://www.w3schools.com/html/horse.ogg" 
      ], 
      id: "horse" 
     }); 
    } 
}).beginDelayedInit(); 

$("#horse").click(function() { 
    soundManager.play("horse"); // <- stops other sounds on mobile :(
}); 

$("#music").click(function() { 
    soundManager.play("music"); // <- stops other sounds on mobile :(
}); 

http://jsbin.com/hopapagefa/1/edit?html,js,output

Есть ли способ я могу запустить несколько звуков на андроид? Если нет, то каким-то образом я могу обнаружить эту способность только запускать один звук одновременно?

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

ответ

0

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

var isPlaying = function (name) { 
    return soundManager.getSoundById(name).playState == 1; 
}; 

// we want to play horse music over our background music 
var oldPosition = soundManager.getSoundById('music').position; 
soundManager.play("horse", { 
    onfinish: function() { 
     if(!isPlaying('music')) { 
      // mobile devices must have cut the background music off :(

      // should probably check if its still appropriate to replay the background music 
      soundManager.play("music", { 
       position: oldPosition 
      }); 
     } 
    } 
}); 
Смежные вопросы