Webrtc:在Firefox中看不到远程流,但在Chrome中工作
我最近重组了我的工作webRtc代码,替换了一些不推荐的API和一些其他重组。它继续在Chrome中工作,但不再在Firefox中工作。代码的基本结构如下所示:Webrtc:在Firefox中看不到远程流,但在Chrome中工作,firefox,webrtc,getusermedia,Firefox,Webrtc,Getusermedia,我最近重组了我的工作webRtc代码,替换了一些不推荐的API和一些其他重组。它继续在Chrome中工作,但不再在Firefox中工作。代码的基本结构如下所示: navigator.mediaDevices.getUserMedia ({ audio: true, video: true }) .then(function(localMediaStream) { //Show local media document.getElementById("myVideoMed
navigator.mediaDevices.getUserMedia ({ audio: true, video: true })
.then(function(localMediaStream) {
//Show local media
document.getElementById("myVideoMedia").srcObject = localMediaStream;
//create peerConnection
peerConnection = new RTCPeerConnection({
"iceServers": [{"url": "stun:stun.l.google.com:19302"}]
});
peerConnection.ontrack = function(event) {
remoteStream = event.streams[0];
document.getElementById("remoteVideoElement").srcObject = remoteStream;
};
peerConnection.onicecandidate = function (event) {
if (event.candidate != null) {
//Send ice candidate to peer connection..
}
};
peerConnection.addStream(localMediaStream);
//Show remote media
document.getElementById("remoteVideoElement").srcObject = remoteStream;
//If caller, send video invite to callee to do the above in its browser
//if callee, having received video invite, send message to caller to request sdpOffer
});
//When (on caller's side) request to send sdpOffer is received
var sdpOffer = new RTCSessionDescription (offer);
peerConnection.setLocalDescription (sdpOffer)
.then (function() {
//send sdpOffer
});
//When (on callee's side) sdpOffer is received
peerConnection.setRemoteDescription(remoteSdpOffer)
.then(function() {
peerConnection.createAnswer()
.then(function(sdpAnswer) {
var sdpAnswer = new RTCSessionDescription(sdpAnswer);
//send sdpAnswer
peerConnection.setLocalDescription(sdpAnswer)
.then(function(){
...
})
//When ICE candidate is received
peerConnection.addIceCandidate(new RTCIceCandidate(iceCandidate))
.then(function() { //console.log("Remote Ice candidate added");
})
.catch(function(err) {...});
无论Firefox浏览器是呼叫者还是被呼叫者,都不会在Firefox中看到远程视频。我怀疑它与事件处理程序的某些顺序有关,但无法找到哪一个 我让它工作了。以上代码没有问题。关于这一点的问题很有帮助。我必须在Firefox中的远程视频元素上执行播放。您可能需要将自动播放添加到视频元素中