1

ホーム画面に保存されるまで、ページは正常に機能します。ホーム画面から起動した場合、音声は表示されません。エラーは「値は AudioBuffer の型ではありません」です。ここで XMLHttpRequest() を使用したオーディオの読み込みに問題があると思います。M4A ファイルは cache.manifest に存在するため、通常どおりキャッシュされます。アドバイスをお願いできますか?ありがとう

function beep(){
    var sound = context.createBufferSource();
    sound.buffer = soundBuffer; <<< here
    sound.connect(context.destination);
    sound.noteOn(0);
}

……

if('webkitAudioContext' in window) {
    context = new webkitAudioContext();

    function bufferSound(event) {
        var request = event.target;
        soundBuffer = context.createBuffer(request.response, false);
    }

    var request = new XMLHttpRequest();
    request.open('GET', 'stoplight.m4a', true);
    request.responseType = 'arraybuffer';
    request.addEventListener('load', bufferSound, false);
    request.send(); 
}

更新: Base64 オーディオ エンコーディングで解決しました。iOS はオーディオ ファイルをキャッシュしません。

4

0 に答える 0