页面效果很好,直到保存到主屏幕。如果从主屏幕启动,则不会显示音频。错误是“值不是一种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不会缓存音频文件。