2016-08-24 4 views
0

Я читал много тем и вопросов по этому вопросу, но я не могу найти решение. Я могу воспроизводить звук в каждом браузере Android, на каждом настольном браузере, но не на Safari на iPhone 5c. Я пытаюсь сделать это с Web Audio API (я определенно не специалист), вот мой код:Звук веб-аудио API работает на настольном компьютере и Android, но не на iPhone

window.addEventListener ('load', loadSound); 
canvas.addEventListener ('touchend', loadSound); 
canvas.addEventListener ('mouseup', loadSound); 

window.AudioContext = window.AudioContext || window.webkitAudioContext; 
var audioContext = new window.AudioContext(); 

var playSoundBuffer; 
var source; 

function loadSound() { 
    setTimeout(function() { 

     var request = new XMLHttpRequest(); 
     var audioURL = "media/sound/WW_start.wav"; 

     request.open("GET", audioURL, true); 
     request.responseType = "arraybuffer"; 
     request.onload = function() { 
     audioContext.decodeAudioData(request.response, function(buffer) { 
      playSoundBuffer = buffer; 
      playSound(); 
      }, function(error) { 
       console.error("Error in sound", error); 
      });     
     request.send(); 
     } 
    }, 50); 
} 

function playSound() { 
    source = audioContext.createBufferSource(); 
    source.buffer = playSoundBuffer; 
    source.connect(audioContext.destination); 
    source.start(0); 
} 

Я также попытался с source.noteOn(), source.noteOn (0), webkitAudioContext ...

ответ

0

Ревун решение:

<script src="lib/howler.js-master/howler.js-master/dist/howler.js"></script> 

...

var sound = new Howl({ 
    src: ['file.wav', 'file.mp3', 'file.ogg'], 
    volume: 1, 
    buffer: false 
}); 

window.addEventListener('mousedown', function() { 
    sound.play(); 
}, false);