我正在尝试使用Aurora.JS播放从流式AAC编码的来源收到的音频。我成功地提取了分块数据,并尝试将其提供给自定义发射器,但实际上没有播放音频。
也许我错过了很简单的事情。以下是我正在尝试做的一个示例:
(当你点击“播放”时,你几乎肯定会收到一个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);
}
}
答案 0 :(得分:0)
无法播放音频,但至少找到了
bufView[i] = chunk.charCodeAt(i);
可能必须由
取代bufView[i] = chunk.charCodeAt(i) & 0xff;
希望它有所帮助。