Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成唯一ID需要花费很长时间的脚本_Javascript_Html_Peerjs - Fatal编程技术网

Javascript 生成唯一ID需要花费很长时间的脚本

Javascript 生成唯一ID需要花费很长时间的脚本,javascript,html,peerjs,Javascript,Html,Peerjs,我的javascript脚本会随机加载,唯一的id会永远出现在网站上。有没有一种方法可以让我在加载网站的其他功能之前先加载脚本?我已经试着把这个脚本放在html的最顶端,但是仍然需要很长时间Show peer是需要花费很长时间才能展示的东西 <ul id="dropdown1" class="dropdown-content"> <li class="logged-in" style="dis

我的javascript脚本会随机加载,唯一的id会永远出现在网站上。有没有一种方法可以让我在加载网站的其他功能之前先加载脚本?我已经试着把这个脚本放在html的最顶端,但是仍然需要很长时间Show peer是需要花费很长时间才能展示的东西

<ul id="dropdown1" class="dropdown-content">
        <li class="logged-in" style="display: none;">
            <input id="peerID" placeholder="Peer ID" class="grey-text">
        </li>
        <li class="logged-in" style="display: none;">
            <a id="call-peer" class="grey-text">Call Peer</a>
        </li>
        <li class="logged-in" style="display: none;">
            <a id="screenShare" class="grey-text">Screen share</a>
        </li>
        <li>
            <div class="gray-text" id="show-peer"></div>
        </li>
    </ul>
  • 呼叫同伴
  • 屏幕共享

window.addEventListener('load',(事件)=>{
var peer=new peer()
var myStream;
var-currentPeer;
var peerList=[];
对等点打开('open',函数(id){
document.getElementById(“显示对等方”).innerHTML=id
})
peer.on('call',函数(call){
navigator.mediaDevices.getUserMedia({
视频:没错,
音频:正确
})。然后((流)=>{
myStream=stream
添加视频(流)
呼叫.应答(流)
call.on('stream',函数(remoteStream){
如果(!peerList.includes(call.peer)){
addRemoteVideo(remoteStream)
currentPeer=call.peerConnection
peerList.push(call.peer)
}
})
}).catch((错误)=>{
console.log(错误+“无法获取媒体”)
})
})
函数stopScreenShare(){
让videoTrack=myStream.getVideoTracks()[0];
var sender=currentPeer.getSenders().find(函数){
返回s.track.kind==videoTrack.kind;
})
发送方.替换跟踪(视频跟踪)
};
document.getElementById(“呼叫对等方”).addEventListener('click',(e)=>{
让remotePeerId=document.getElementById(“peerID”).value;
document.getElementById(“show peer”).innerHTML=“connecting”+remotePeerId;
console.log(remotePeerId)
callPeer(remotePeerId);
})
document.getElementById(“屏幕共享”).addEventListener('click',(e)=>{
navigator.mediaDevices.getDisplayMedia({
视频:{
光标:“始终”
},
音频:{
自动增益控制:错误,
回音取消:错,
googAutoGainControl:错误,
噪声抑制:错误
}
})。然后((流)=>{
让videoTrack=stream.getVideoTracks()[0];
videoTrack.onedded=函数(){
stopScreenShare()
}
让sender=currentPeer.getSenders().find(函数){
返回s.track.kind==videoTrack.kind
})
发送方.替换跟踪(视频跟踪)
}).catch((错误)=>{
console.log(“无法获取显示媒体”+错误)
})
})
函数callPeer(id){
navigator.mediaDevices.getUserMedia({
视频:没错,
音频:正确
})。然后((流)=>{
myStream=stream
添加视频(流)
let call=peer.call(id,流)
call.on('stream',函数(remoteStream){
如果(!peerList.includes(call.peer)){
addRemoteVideo(remoteStream)
currentPeer=call.peerConnection
peerList.push(call.peer)
}
})
}).catch((错误)=>{
console.log(错误+“无法获取媒体”)
})
}
函数addRemoteVideo(流){
让视频=document.createElement(“视频”);
video.classList.add(“视频”)
video.srcObject=流;
视频播放()
document.getElementById(“remoteVideo”).append(视频)
}
函数addOurVideo(流){
让视频=document.createElement(“视频”);
video.classList.add(“视频”)
video.srcObject=流;
视频播放()
video.muted=true;
document.getElementById(“我们的视频”).append(视频)
}
});

这是PeerJS吗?@myjobistobehappy YesHuh。我根本看不出来
<script>
    window.addEventListener('load', (event) => {
        var peer = new Peer()
        var myStream;
        var currentPeer;
        var peerList = [];
        peer.on('open', function (id) {
            document.getElementById("show-peer").innerHTML = id
        })
        peer.on('call', function (call) {
            navigator.mediaDevices.getUserMedia({
                video: true,
                audio: true
            }).then((stream) => {
                myStream = stream
                addOurVideo(stream)
                call.answer(stream)
                call.on('stream', function (remoteStream) {
                    if (!peerList.includes(call.peer)) {
                        addRemoteVideo(remoteStream)
                        currentPeer = call.peerConnection
                        peerList.push(call.peer)
                    }

                })
            }).catch((err) => {
                console.log(err + " unable to get media")
            })
        })
        function stopScreenShare() {
            let videoTrack = myStream.getVideoTracks()[0];
            var sender = currentPeer.getSenders().find(function (s) {
                return s.track.kind == videoTrack.kind;
            })
            sender.replaceTrack(videoTrack)
        };
        document.getElementById("call-peer").addEventListener('click', (e) => {
            let remotePeerId = document.getElementById("peerID").value;
            document.getElementById("show-peer").innerHTML = "connecting " + remotePeerId;
            console.log(remotePeerId)
            callPeer(remotePeerId);
        })
        document.getElementById("screenShare").addEventListener('click', (e) => {
            navigator.mediaDevices.getDisplayMedia({
                video: {
                    cursor: "always"
                },
                audio: {
                    autoGainControl: false,
                    echoCancellation: false,
                    googAutoGainControl: false,
                    noiseSuppression: false
                }
            }).then((stream) => {
                let videoTrack = stream.getVideoTracks()[0];

                videoTrack.onended = function () {
                    stopScreenShare()
                }
                let sender = currentPeer.getSenders().find(function (s) {
                    return s.track.kind == videoTrack.kind
                })
                sender.replaceTrack(videoTrack)
            }).catch((err) => {
                console.log("unable to get display media" + err)
            })
        })
        function callPeer(id) {
            navigator.mediaDevices.getUserMedia({
                video: true,
                audio: true
            }).then((stream) => {
                myStream = stream
                addOurVideo(stream)
                let call = peer.call(id, stream)
                call.on('stream', function (remoteStream) {
                    if (!peerList.includes(call.peer)) {
                        addRemoteVideo(remoteStream)
                        currentPeer = call.peerConnection
                        peerList.push(call.peer)
                    }

                })
            }).catch((err) => {
                console.log(err + " unable to get media")
            })
        }
        function addRemoteVideo(stream) {
            let video = document.createElement("video");
            video.classList.add("video")
            video.srcObject = stream;
            video.play()
            document.getElementById("remoteVideo").append(video)
        }
        function addOurVideo(stream) {
            let video = document.createElement("video");
            video.classList.add("video")
            video.srcObject = stream;
            video.play()
            video.muted = true;
            document.getElementById("ourVideo").append(video)
        }
    });
</script>