2016-08-24 191 views
0

我已閱讀了很多關於此問題的主題和問題,但找不到解決方案。我可以在每臺Android瀏覽器上,每臺桌面瀏覽器上播放聲音,但不能在iPhone 5c上的Safari上播放聲音。 我試圖用網絡音頻API來做到這一點(我definitly不是專家),這裏是我的代碼:Web音頻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); 
相關問題