导入数据库表和音视频demo

This commit is contained in:
2023-09-14 14:59:57 +08:00
parent c0ca154d31
commit 736c5376e0
157 changed files with 11044 additions and 0 deletions

View File

@@ -0,0 +1,121 @@
const url = "wss://"+window.location.hostname+":"+window.location.port;
const roomId = (new Date()).getTime() + "-" + Math.random();
function addVideoForStream(stream,muted)
{
//Create new video element
const video = document.querySelector (muted ? "#local" : "#remote");
//Set same id
video.id = stream.id;
//Set src stream
video.src = URL.createObjectURL(stream);
//Set other properties
video.autoplay = true;
video.muted = muted;
}
function removeVideoForStream(stream)
{
//Get video
var video = document.getElementById(stream.id);
//Remove it when done
video.addEventListener('webkitTransitionEnd',function(){
//Delete it
video.parentElement.removeChild(video);
});
//Disable it first
video.className = "disabled";
}
var sdp;
var pc;
function connect()
{
if (window.RTCPeerConnection)
pc = new RTCPeerConnection({
bundlePolicy: "max-bundle",
rtcpMuxPolicy : "require"
});
else
pc = new webkitRTCPeerConnection(null);
var ws = new WebSocket(url,"broadcast");
pc.onaddstream = function(event) {
var prev = 0;
console.debug("onAddStream",event);
//Play it
addVideoForStream(event.stream);
};
pc.onremovestream = function(event) {
console.debug("onRemoveStream",event);
//Play it
removeVideoForStream(event.stream);
};
ws.onopen = function(){
console.log("opened");
//Create new offer
pc.createOffer({
offerToReceiveVideo: true
})
.then(function(offer){
console.debug("createOffer sucess",offer);
//We have sdp
sdp = offer.sdp;
//Set it
pc.setLocalDescription(offer);
console.log(sdp);
//Create room
ws.send(JSON.stringify({
cmd : "OFFER",
offer : sdp
}));
})
.catch(function(error){
console.error("Error",error);
});
};
ws.onmessage = function(event){
console.log(event);
//Get protocol message
const msg = JSON.parse(event.data);
console.log(msg.answer);
pc.setRemoteDescription(new RTCSessionDescription({
type:'answer',
sdp: msg.answer
}), function () {
console.log("JOINED");
}, function (err) {
console.error("Error joining",err);
}
);
};
}
var dialog = document.querySelector('dialog');
if (dialog.showModal)
{
dialog.showModal();
dialog.querySelector('.ready').addEventListener('click', function() {
dialog.close();
connect();
});
} else {
connect();
}