Firefox OS - 在物理硬件上发出Busted XMLHttpRequest arraybuffer请求

时间:2014-11-10 07:56:00

标签: javascript firefox-os

几个星期前,我在伦敦的MozFest收到了一个Flame设备。兴奋的是,我决定将我们工作的一个项目移植到新设备上。

我在最后一分钟完成应用程序问题(http://hearushere.nl/app/)。实际上,音频请求不会在物理设备上处理(它在Firefox OS 2.1模拟器和Firefox专用/桌面中都很好用)。以下请求永远不会返回:

  function handleTrackDetail() {
    var detail = JSON.parse(this.responseText);
    var request = new XMLHttpRequest();
    var url = detail.stream_url + '?client_id=' + scClientId;
    console.log(url);
    request.open("GET", url, true);
    request.responseType = "arraybuffer";
    request.onload = function() {
      console.log('GOT AUDIO DATA!');
      context.decodeAudioData(request.response, function(buffer) {
        var track = tracksDict[detail.id];
        console.log(track.id + ' buffered and decoded...');
        track.source = context.createBufferSource();
        track.source.buffer = buffer;
        track.source.loop = true;
        track.gainNode = context.createGain();
        track.source.connect(track.gainNode);
        track.gainNode.connect(context.destination);
        track.gainNode.gain.value = 0.0;
        track.source.start(0);
      }, function(error) {
        console.log('ERROR...');
      });
    }
    request.send();
  }

也许" arraybuffer"类型?

如果有人可以向我解释为什么地理位置请求仅适用于某些情况,并且大部分都是完整的,那么

奖励积分:

navigator.geolocation.watchPosition(function(position) {
  console.log('Latitude: ' + position.coords.latitude + ' Longitude: ' + position.coords.longitude);
} 

2 个答案:

答案 0 :(得分:0)

Firefox OS中存在arraybuffer的错误,可能是您遇到过它。

以下是错误报告:https://bugzilla.mozilla.org/show_bug.cgi?id=1057855

它包含解决方法。虽然bug已经修复,但可能你的固件不包含该修复程序(它已在2.2中修复,然后向后移植到2.0 / 2.1)。

答案 1 :(得分:0)

我从2.1闪过2.2,问题。 。 。只是离开了。