【问题标题】:Web audio API sound works on desktop and Android, but doesn't on iPhoneWeb 音频 API 声音适用于桌面和 Android,但不适用于 iPhone
【发布时间】:2016-08-24 11:06:51
【问题描述】:

我已经阅读了很多关于这个问题的主题和问题,但我找不到解决方案。我可以在每个 Android 浏览器、每个桌面浏览器上播放声音,但不能在 iPhone 5c 上的 Safari 上播放。 我正在尝试使用 Web Audio API(我绝对不是专家),这是我的代码:

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...

【问题讨论】:

    标签: javascript iphone html safari web-audio-api


    【解决方案1】:

    咆哮是解决办法:

    <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);
    

    【讨论】:

      猜你喜欢
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2015-09-02
      • 1970-01-01
      • 2019-08-31
      • 2019-07-14
      • 1970-01-01
      相关资源
      最近更新 更多