【发布时间】:2012-12-14 00:47:36
【问题描述】:
我正在尝试使用 Web Audio API 在我的 iPhone 游戏上获得声音。问题是这个应用程序完全是客户端。我想将我的 mp3 存储在本地文件夹中(并且不受用户输入驱动),因此我不能使用 XMLHttpRequest 来读取数据。我正在考虑使用 FileSystem,但 Safari 不支持它。
还有其他选择吗?
编辑:感谢以下回复。不幸的是,音频 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 支持跨源请求。 未捕获的错误:NETWORK_ERR:XMLHttpRequest 异常 101
我了解读取本地文件的安全风险,但在您自己的域内肯定可以吗?
【问题讨论】:
-
你可能会发现这个问题的答案很有用stackoverflow.com/questions/10556437/…
-
你考虑过本地存储吗?
-
不知道你上面的意思。我将音频文件存储在与我的 javascript 相同的域中。只是不知道我如何访问它,或者它是否被允许?
标签: html client-side web-audio-api