1
WebSocket에서 aac (adts) 스트리밍을 재생해야하는데 인터넷을 검색하여 aac.js가이를 수행 할 수 있지만 지연 시간이 거의 2 ~ 5 초라는 것을 알았습니다.WebAudio WebSocket에서 AAC 스트리밍 재생
그리고 일부 사람들이 WebAudio를 사용하여이 작업을 수행하는 것으로 나타났습니다. 나는 (항상하지만 오류를 반복하지) 일부 패킷 후 코드 만 디코더 반환 오류 아래로 시도 :
내 샘플 자바 스크립트Uncaught (in promise) DOMException: Unable to decode audio data
:
var context = new AudioContext();
var nextStartTime = 0;
var audioWs = new WebSocket("ws://" + hostip + ":8084");
audioWs.binaryType = 'arraybuffer';
audioWs.onopen = function(evt) {
console.log("onOpen");
bexit = 0;
};
audioWs.onclose = function(evt) {
console.log("close");
};
audioWs.onmessage = function(evt) {
var blob = evt.data;
if (blob.slice == undefined) {
console.log("undefined message");
return;
}
decodeAudio(blob);
};
audioWs.onerror = function(evt) {
console.log("error");
};
var decodeAudio = function(blob) {
context.decodeAudioData(
blob,
function(buffer) {
if (!buffer) {
console.log('error decoding file data: ' + url);
return;
}
console.log("playback buffer");
playBuffer(buffer);
},
function(error) {
console.error("decodeAudioData error", error);
});
};
var playBuffer = function(buffer) {
var source = context.createBufferSource();
source.buffer = buffer;
if(nextStartTime == 0){
nextStartTime = context.currentTime + buffer.duration/2;
}
source.connect(context.destination);
source.start(nextStartTime);
nextStartTime += buffer.duration;
};
이 데이터에 의해 발생의 I 확실하지 않은 경우가로부터받은 웹 소켓 너무 빨리 incomming 다음 디코더 오류가 발생합니다! 어떻게 수정해야합니까?
아니면 WebAudio API로이 작업을 수행하는 것이 좋지 않을 수 있습니다.
스트리밍 재생을 위해 Media Source Extension을 시도하십시오. – beetlej