gpt4 book ai didi

javascript - RTCPeerConnection 在 Firefox 和 Safari 中不是构造函数

转载 作者:行者123 更新时间:2023-11-30 20:28:23 25 4
gpt4 key购买 nike

我正在编写一个非常简单的 WebRTC 应用程序,以流式传输来自 RaspberryPi Zero 相机的实时视频。我正在使用 Linux Project's UV4L driver设置服务器和 JavaScript 以连接和播放视频流。我的 JavaScript 代码基于 UV4L's demo ,它本质上使用 RTC 网络套接字方法来执行协商。

他们的代码在 Chrome 中运行良好,但在 Firefox 或 Safari 下似乎无法运行。

RTCPeerConnection = window.webkitRTCPeerConnection;
RTCSessionDescription = window.RTCSessionDescription;
RTCIceCandidate = window.RTCIceCandidate;
var ws;

function signal(url, onStream, onError, onClose, onMessage) {
if("WebSocket" in window) {
var pc;
ws = new WebSocket(url);

ws.onopen = function () {
var config = {"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]};
pc = new RTCPeerConnection(config); // <---- ERROR here.
pc.onicecandidate = function (event) {
// ... ICE negotiation.
};

if('ontrack' in pc) {
pc.ontrack = function(event) {
// ... set stream object and play
};
} else { // onaddstream() is deprecated
pc.onaddstream = function (event) {
// ... set stream object and play
};
}
// ... other event listeners.
ws.send(...); // Signals the remote peer to initiate a call
};
}
}

特别是,当我尝试连接时出现错误,在 Firefox v60.0.1 中抛出以下错误(在 Safari 中非常相似):

TypeError: RTCPeerConnection is not a constructor

根据 MDN docs , Firefox 从 v22 开始支持这个构造函数。可能是什么问题?

最佳答案

我的错误原来是一个愚蠢的错字。代码开头的 RTCPeerConnection 声明是错误的。应该是:

RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection;

关于javascript - RTCPeerConnection 在 Firefox 和 Safari 中不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50627797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com