在询问之前尝试了很多东西,但我仍然无法在我的Ionic项目中加载声音作为缓冲区。
我不知道这是我的旧版Firefox浏览器26(Fedora 18)中的错误,还是我做错了。
这里是我的代码,非常经典,可以使用XMLHttpRequest()为web音频API加载arrayBuffer:
var request = new XMLHttpRequest()
request.open('GET', './sound/mySound.ogg', true)
request.responseType = 'arraybuffer'
request.onload = function() {
audioCtx.decodeAudioData(request.response, function (buffer) {
mainBuffer = buffer
}, function (err) {
console.log(err)
})
}
request.send()
我在控制台中收到此警告消息:
LesdonnéespasséesàdecodeAudioDataposxèdentducontenu de type INCONNU。
和错误未定义
相同的代码在Apache服务器中正常工作。 我在这里想念的是什么? 我也尝试过这样的事情:
$http.get(url, { responseType: 'arraybuffer' }).success(function (data) {
audioCtx.decodeAudioData(data, function (buffer) {
mainBuffer = buffer
}, function (err) {
console.log(err)
})
}, function (err) {
console.log(err)
})
但仍然没有运气。该文件似乎已损坏。太令人沮丧......
html5 audio 标记返回相同的错误。
Ionic服务器有问题吗?
有没有办法解决这个问题?
任何建议都会非常感激。
答案 0 :(得分:2)
刚刚找到问题的解决方案并回答了这个类似的问题:
How do I load an AudioBuffer with Angular $http?
答案 1 :(得分:0)
根据错误消息,您的浏览器似乎不支持ogg文件。为音频文件尝试不同的压缩方法。