ホーム画面に保存されるまで、ページは正常に機能します。ホーム画面から起動した場合、音声は表示されません。エラーは「値は 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 はオーディオ ファイルをキャッシュしません。