我正在尝试使用Web Audio API在iPhone游戏中实现声音效果。问题在于这个应用程序完全是客户端的,我想将我的mp3存储在本地文件夹中(而且不能由用户输入驱动),所以我无法使用XMLHttpRequest来读取数据。我在考虑使用FileSystem,但Safari不支持它。
是否有任何替代方案?
编辑:感谢下面的回复。不幸的是,Audio API对于游戏来说速度非常慢。我已经让它工作了,但延迟使用户体验无法接受。为了澄清,我需要像这样的东西 -
var request = new XMLHttpRequest();
request.open('GET', 'file:///./../sounds/beep-1.mp3', true);
request.responseType = 'arraybuffer';
request.onload = function() {
context.decodeAudioData(request.response, function(buffer) {
dogBarkingBuffer = buffer;
}, onError);
}
request.send();
但是这给了我以下的错误 -
XMLHttpRequest无法加载file:///sounds/beep-1.mp3。跨域请求仅支持HTTP。 Uncaught Error: NETWORK_ERR: XMLHttpRequest Exception 101
我理解读取本地文件存在安全风险,但在自己的域内应该没问题吧?