无法启动视频源 - 仅在 chrome
Could not start video source - ONLY in chrome
我的网站正在使用基于 peerjs/WebRTC 的视频流。
这几天前工作得很好。昨天我切换到 SSL,因为没有它就无法访问媒体设备。从那以后,视频在 Chrome 中无法播放。每次打开我的网站时,我都会收到以下错误消息:
DOMException: Could not start video source
这是我的视频流源代码:
let myPeer = new Peer(undefined, {
host: "192.168.178.28",
port: "3000",
path: "/peerjs",
key: "peerjs",
});
let myVideo = document.createElement("video");
myVideo.muted = true; // mute own video
navigator.mediaDevices
.getUserMedia({ // get video and audio from user
video: {
width: { max: 320},
height: { max: 240},
},
audio: true,
})
.then((stream) => {
addVideoStream(myVideo, stream); // add video to peer
Socket.emit("giveAllUsers");
Socket.on("allUsers", (data) => {
for (let x of data) {
if (x != myId) {
connectToNewUser(x, stream); //connect to new users
}
}
});
myPeer.on("call", (call) => {
call.answer(stream);
const video = document.createElement("video");
call.on("stream", (userVideoStream) => {//new stream
addVideoStream(video, userVideoStream);
});
call.on("close", () => {//remove users video when call is closed
video.remove();
});
peers[call.peer] = call;
console.log(peers);
});
})
.catch(error => {
console.error('error: ', error);
});
Edge出现同样的错误。
但是,它在 Firefox 和 Chrome!
的移动版本中仍然有效
有谁知道发生了什么事吗?为什么 SSL 在 Chrome 和 Edge 中导致此问题,但在 Firefox 和 Chrome 的移动版本中没有?
知道了。
出于某种原因 Chrome(并且只有 Chrome)尝试使用我连接的虚拟现实耳机的摄像头,但它不起作用。如果你们中的一些人将来遇到这个问题:请确保 Chrome 尝试访问正确的摄像头。
我的网站正在使用基于 peerjs/WebRTC 的视频流。
这几天前工作得很好。昨天我切换到 SSL,因为没有它就无法访问媒体设备。从那以后,视频在 Chrome 中无法播放。每次打开我的网站时,我都会收到以下错误消息:
DOMException: Could not start video source
这是我的视频流源代码:
let myPeer = new Peer(undefined, {
host: "192.168.178.28",
port: "3000",
path: "/peerjs",
key: "peerjs",
});
let myVideo = document.createElement("video");
myVideo.muted = true; // mute own video
navigator.mediaDevices
.getUserMedia({ // get video and audio from user
video: {
width: { max: 320},
height: { max: 240},
},
audio: true,
})
.then((stream) => {
addVideoStream(myVideo, stream); // add video to peer
Socket.emit("giveAllUsers");
Socket.on("allUsers", (data) => {
for (let x of data) {
if (x != myId) {
connectToNewUser(x, stream); //connect to new users
}
}
});
myPeer.on("call", (call) => {
call.answer(stream);
const video = document.createElement("video");
call.on("stream", (userVideoStream) => {//new stream
addVideoStream(video, userVideoStream);
});
call.on("close", () => {//remove users video when call is closed
video.remove();
});
peers[call.peer] = call;
console.log(peers);
});
})
.catch(error => {
console.error('error: ', error);
});
Edge出现同样的错误。
但是,它在 Firefox 和 Chrome!
的移动版本中仍然有效有谁知道发生了什么事吗?为什么 SSL 在 Chrome 和 Edge 中导致此问题,但在 Firefox 和 Chrome 的移动版本中没有?
知道了。
出于某种原因 Chrome(并且只有 Chrome)尝试使用我连接的虚拟现实耳机的摄像头,但它不起作用。如果你们中的一些人将来遇到这个问题:请确保 Chrome 尝试访问正确的摄像头。