javascript - 在 Firefox v60.0.2(WebRTC、Firefox)中创建 sdf 报价时出错

标签 javascript html firefox webrtc

当它触发 RTCPeerConnection.createOffer() 时,我收到下一个错误:

DOMException
代码:11
列号:0
数据:空
文件名:“”
行号:0
消息:“当没有有效的收发器时,无法创建报价。”
名称:“InvalidStateError”
结果:2152923147
堆栈:“”
__proto__: DOMExceptionPrototype { name: Getter, message: Getter, INDEX_SIZE_ERR: 1, … } index.js:176:3

接下来是完整的代码片段(错误由以下行引发:pc.createOffer().then(...):

let pc = {};
let localStream = {};
const btnStart = document.querySelector("button[id='btnstart']");
let localVideoDisplay = document.getElementById('vOwn');

btnStart.addEventListener("click",(e)=>{

		pc = new RTCPeerConnection();
		pc.onicecandidate = (event)=>{
			console.log(event);
		}
		/*
			It captures local media
		*/
		navigator.mediaDevices.getUserMedia({ audio: 1, video: 1 }).then((stream)=>{
			localStream = stream;
			localVideoDisplay.srcObject = localStream;
		}).catch((err)=>{
			  console.log(err);
		});
		/* 
			It creates sdpOffer 
		*/
		pc.createOffer().then((rtcSession)=>{
			console.log(rtcSession);
		}).catch((error)=>{
			console.log(error);
		});
	});
<button id="btnstart">Start</button>
<video id="vOwn" autoplay></video>

该代码在 Chrome(移动和桌面)和 Safari(移动 v11.3.1 和桌面 v11.0.2)上完美运行,我的下一个问题是:这是 Firefox 错误还是我做错了什么?

最佳答案

您在添加任何流或创建数据通道之前调用 pc.createOffer()

这通常不是您想要的。试试这个:

navigator.mediaDevices.getUserMedia({ audio: 1, video: 1 }).then((stream)=>{
    localStream = stream;
    localVideoDisplay.srcObject = localStream;
    stream.getTracks().forEach((t) => pc.addTrack(t, stream));
    return pc.createOffer()
})
.then((rtcSession)=>{
    console.log(rtcSession);
}).catch((error)=>{
    console.log(error);
});

关于javascript - 在 Firefox v60.0.2(WebRTC、Firefox)中创建 sdf 报价时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892877/

相关文章:

javascript - DropDownButton 内的 TooltipDialog 不适用于自定义小部件

javascript - 使用 HTML5、javascript 的视频聊天客户端

javascript - 字符串中的第一个和最后一个数字?

javascript - 设置带有过滤器和排序功能的 HTML 表格

java - 使用selenium获取页面源代码,如何在没有firefox的服务器上使用我的代码?

javascript - 如何在 Express 中向 req.url 添加查询字符串?

Javascript数组返回是否添加双引号?

html - 模态对话框关闭图标与 CSS 对齐

CSS :first-letter gets cut off at the border of the paragraph

sockets - XPCOM 套接字正在关闭。如何让它保持活力?