在Ionic

时间:2016-03-27 17:40:07

标签: ionic-framework buffer web-audio

在询问之前尝试了很多东西,但我仍然无法在我的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服务器有问题吗? 有没有办法解决这个问题?
任何建议都会非常感激。

2 个答案:

答案 0 :(得分:2)

刚刚找到问题的解决方案并回答了这个类似的问题:
How do I load an AudioBuffer with Angular $http?

答案 1 :(得分:0)

根据错误消息,您的浏览器似乎不支持ogg文件。为音频文件尝试不同的压缩方法。