|
@@ -419,16 +419,14 @@
|
|
|
// ws.addEventListener('error', function (event) {
|
|
|
// console.log("连接失败");
|
|
|
// });
|
|
|
+ var ws;
|
|
|
doConnect();
|
|
|
-
|
|
|
function doConnect() {
|
|
|
console.log("执行doconnect");
|
|
|
ws = new WebSocket(socketURL);
|
|
|
ws.binaryType = 'arraybuffer';
|
|
|
|
|
|
ws.onclose = function (e) {
|
|
|
- console.log('websocket 断开: ' + e.code + ' ' + e.reason + ' ' + e.wasClean);
|
|
|
- console.log("时间: " + new Date() + e);
|
|
|
alert("websocket连接断开,准备重连");
|
|
|
doConnect();
|
|
|
}
|
|
@@ -443,19 +441,6 @@
|
|
|
});
|
|
|
|
|
|
ws.addEventListener('message', function (event) {
|
|
|
- var data = ParseProto(event.data);//JAVA服务器转发
|
|
|
-
|
|
|
- if (data.audio != null) { } //喂音频
|
|
|
- if (data.video != null) { //喂视频
|
|
|
- if (isFeed) {
|
|
|
- jmuxer.feed(data);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- function getMessage() {
|
|
|
- ws.addEventListener('message', function (event) {
|
|
|
var data = ParseProto(event.data); //JAVA服务器转发
|
|
|
//console.log("收到数据");
|
|
|
|
|
@@ -524,73 +509,75 @@
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- ws.addEventListener('message', function (event) {
|
|
|
- var data = ParseProto(event.data); //JAVA服务器转发
|
|
|
- //console.log("收到数据");
|
|
|
-
|
|
|
- var audioData = {
|
|
|
- audio: data.audio,
|
|
|
- video: null,
|
|
|
- duration: data.duration
|
|
|
- };
|
|
|
-
|
|
|
- var videoData = {
|
|
|
- audio: null,
|
|
|
- video: data.video,
|
|
|
- duration: data.duration
|
|
|
- };
|
|
|
- var input = new Uint8Array(event.data);
|
|
|
- // console.log("音频数据", input, input[0] == 0xff);
|
|
|
- if (input[0] == 0xff) {
|
|
|
- if (isFinish) {
|
|
|
+ function getMessage() {
|
|
|
+ ws.addEventListener('message', function (event) {
|
|
|
+ var data = ParseProto(event.data); //JAVA服务器转发
|
|
|
+ //console.log("收到数据");
|
|
|
+
|
|
|
+ var audioData = {
|
|
|
+ audio: data.audio,
|
|
|
+ video: null,
|
|
|
+ duration: data.duration
|
|
|
+ };
|
|
|
+
|
|
|
+ var videoData = {
|
|
|
+ audio: null,
|
|
|
+ video: data.video,
|
|
|
+ duration: data.duration
|
|
|
+ };
|
|
|
+ var input = new Uint8Array(event.data);
|
|
|
+ // console.log("音频数据", input, input[0] == 0xff);
|
|
|
+ if (input[0] == 0xff) {
|
|
|
+ if (isFinish) {
|
|
|
+ var time = new Date().getTime();
|
|
|
+ decodeAAC(input);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else { }
|
|
|
+ if (myAudio.readyState == 2) {
|
|
|
+ requestTime = new Date().getTime();
|
|
|
+ isEnough = false;
|
|
|
+ console.log("数据存储不够,出现声音停止,时间差 %f", myAudio.buffered.end(0));
|
|
|
+ myAudio.pause();
|
|
|
+ //myAudio.playbackRate = 2;
|
|
|
+ } else if (myAudio.readyState == 4 && isEnough == false) {
|
|
|
+ myAudio.play();
|
|
|
var time = new Date().getTime();
|
|
|
- decodeAAC(input);
|
|
|
- }
|
|
|
+ isEnough = true;
|
|
|
+ console.log("填满耗时 %d ms, 填充帧数 %d, 填充延迟 %d ms", time - requestTime, requestCount,
|
|
|
+ requestCount * 23);
|
|
|
|
|
|
- } else { }
|
|
|
- if (myAudio.readyState == 2) {
|
|
|
- requestTime = new Date().getTime();
|
|
|
- isEnough = false;
|
|
|
- console.log("数据存储不够,出现声音停止,时间差 %f", myAudio.buffered.end(0));
|
|
|
- myAudio.pause();
|
|
|
- //myAudio.playbackRate = 2;
|
|
|
- } else if (myAudio.readyState == 4 && isEnough == false) {
|
|
|
- myAudio.play();
|
|
|
- var time = new Date().getTime();
|
|
|
- isEnough = true;
|
|
|
- console.log("填满耗时 %d ms, 填充帧数 %d, 填充延迟 %d ms", time - requestTime, requestCount,
|
|
|
- requestCount * 23);
|
|
|
-
|
|
|
- console.log("----接收到启动 %d ms, 缓冲区 %f---", time - delayTime, myAudio.buffered.end(0) - myAudio
|
|
|
- .played.end(0));
|
|
|
- }
|
|
|
+ console.log("----接收到启动 %d ms, 缓冲区 %f---", time - delayTime, myAudio.buffered.end(0) - myAudio
|
|
|
+ .played.end(0));
|
|
|
+ }
|
|
|
|
|
|
- if (data.audio != null) //喂音频
|
|
|
- {
|
|
|
- if (myAudio.buffered.length > 0 && myAudio.played.length > 0) {
|
|
|
- var bufferTime = myAudio.buffered.end(0) - myAudio.played.end(0);
|
|
|
- //console.log(" bufferTime %d", bufferTime);
|
|
|
+ if (data.audio != null) //喂音频
|
|
|
+ {
|
|
|
+ if (myAudio.buffered.length > 0 && myAudio.played.length > 0) {
|
|
|
+ var bufferTime = myAudio.buffered.end(0) - myAudio.played.end(0);
|
|
|
+ //console.log(" bufferTime %d", bufferTime);
|
|
|
|
|
|
- if (bufferTime > 1) {
|
|
|
- //console.log("丢掉一些包");
|
|
|
- //return;
|
|
|
+ if (bufferTime > 1) {
|
|
|
+ //console.log("丢掉一些包");
|
|
|
+ //return;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ audioMuxer.feed(audioData);
|
|
|
}
|
|
|
|
|
|
- audioMuxer.feed(audioData);
|
|
|
- }
|
|
|
+ if (data.video != null) //喂视频
|
|
|
+ {
|
|
|
+ if (isFeed) {
|
|
|
+ // console.log("渲染视频");
|
|
|
+ jmuxer.feed(data);
|
|
|
+ }
|
|
|
|
|
|
- if (data.video != null) //喂视频
|
|
|
- {
|
|
|
- if (isFeed) {
|
|
|
- // console.log("渲染视频");
|
|
|
- jmuxer.feed(data);
|
|
|
+ //jmuxer.feed(videoData);
|
|
|
}
|
|
|
|
|
|
- //jmuxer.feed(videoData);
|
|
|
- }
|
|
|
-
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
var myPlay = document.getElementById("wine");
|
|
|
myPlay.onmousedown = function (event) {
|