【问题标题】:Silence when Playing AAC Chunks播放 AAC 块时保持静音
【发布时间】:2014-07-02 18:34:17
【问题描述】:

我正在尝试使用 Aurora.JS 播放从流式 AAC 编码源接收的音频。我已成功提取分块数据,并尝试将其输入自定义发射器,但实际上没有播放音频。

也许我错过了一些非常简单的东西。这是我正在尝试做的一个示例:

http://jsfiddle.net/Rc6Su/4/

(点击“播放”时几乎肯定会出现 CORS 错误,因为源是跨域的。我可以轻松解决这个问题的唯一方法是使用此插件:https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi/related?hl=en

在您提及之前,这是进入PhoneGap应用程序,因此跨域问题不会成为问题。

问题代码在这里的某处:

var aurora_source = null;
var player = null;
function make_noise(chunk) {
    var uarr = (function (chunk) {
        var buf = new ArrayBuffer(chunk.length * 2); // 2 bytes for each character
        var bufView = new Uint8Array(buf);
        for (var i=0, strLen=chunk.length; i<strLen; i++) {
            bufView[i] = chunk.charCodeAt(i);
        }
        return buf;
    })(chunk);
    var abData = new AV.Buffer(uarr);

    if (!aurora_source) {
        var MySource = AV.EventEmitter.extend ({
            start   : function () {
                this.emit('data', abData);
            },
            pause   : function () {
            },
            reset   : function () {
            }
        });
        aurora_source = new MySource();
        asset = new AV.Asset(aurora_source);
        player = new AV.Player(asset);
        player.play();
    } else {
        $("#debug").append("emit data");
        $("#debug").append("\n");
        aurora_source.emit('data', abData);
    }
}

【问题讨论】:

    标签: javascript streaming audio-streaming aac aurora.js


    【解决方案1】:

    无法播放音频,但至少找到了

    bufView[i] = chunk.charCodeAt(i);
    

    可能需要替换为

    bufView[i] = chunk.charCodeAt(i) & 0xff;
    

    What does charCodeAt(...) & 0xff accomplish?

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-14
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多