大佬教程收集整理的这篇文章主要介绍了Socket.io webrtc 和 PeerJS 在 Chrome 移动设备上不起作用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建实时视频通话
我的代码在笔记本电脑浏览器(Safari、Chrome 和 ...)上运行良好
但如果我在 iOS 手机或 AndroID 手机上使用 Chrome,则无法正常工作!
此外,有时在 Safari 移动设备上无法正常工作
始终在笔记本电脑上购买工作正常!
index.htm
<!DOCTYPE HTML>
<HTML>
<head>
<title>Chat</title>
<script>
const ROOM_ID = "1"
</script>
<script src="https://unpkg.com/peerJs@1.3.1/dist/peerJs.min.Js"></script>
<script src="https://***/socket.io/socket.io.Js" defer></script>
<script src="script.Js" defer></script>
<style>
vIDeo {
wIDth: 200px;
height: 200px;
object-fit: cover;
BACkground: #f00;
}
</style>
</head>
<body>
<vIDeo ID="self" playsinline autoplay muted></vIDeo>
<vIDeo ID="remote" playsinline autoplay></vIDeo>
</body>
</HTML>
Script.Js
window.onload = function(){
var socket = io('https://***.com')
var myPeer = new Peer(undefined,{
host: 'peer.***.com',path: '/',port: 3005
})
var callList = {}
var myVIDeo = document.createElement('vIDeo')
myVIDeo.setAttribute("ID","self");
navigator.mediaDevices.getUserMedia({
vIDeo: true,audio: true
}).then(stream => {
addVIDeoStream(myVIDeo,stream)
myPeer.on('call',call => {
call.answer(stream)
var vIDeo = document.createElement('vIDeo')
call.on('stream',userviDeoStream => {
if(!callList[call.peer]){
callList[call.peer] = call
addVIDeoStream(vIDeo,userviDeoStream)
}
})
call.on('close',() => {
vIDeo.remove()
})
})
socket.on('user-connected',userID => {
connectToNewUser(userID,stream)
})
socket.on('user-disconnected',userID => {
if(callList[userID]) callList[userID].close()
})
})
function connectToNewUser(userID,stream){
var call = myPeer.call(userID,stream)
var vIDeo = document.createElement('vIDeo')
vIDeo.setAttribute("ID","ID_"+userID);
call.on('stream',userviDeoStream => {
if(!callList[userID]){
callList[userID] = call
addVIDeoStream(vIDeo,userviDeoStream)
}
})
call.on('close',() => {
vIDeo.remove()
})
call.on('error',function(err) {
console.log("ERRR: "+err);
});
}
myPeer.on('open',ID => {
socket.emit('join-room',ROOM_ID,ID)
})
function addVIDeoStream(vIDeo,stream){
var ID = vIDeo.getAttribute('ID');
vIDeo = document.getElementByID('remote')
if(ID == "self")
vIDeo = document.getElementByID('self')
vIDeo.srcObject = stream
vIDeo.onloadedMetadata = function(){
vIDeo.play()
}
}
}
我该如何解决?
我希望在所有设备和所有浏览器上都能进行视频通话
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
@H_801_36@以上是大佬教程为你收集整理的Socket.io webrtc 和 PeerJS 在 Chrome 移动设备上不起作用全部内容,希望文章能够帮你解决Socket.io webrtc 和 PeerJS 在 Chrome 移动设备上不起作用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。