Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RTPeerConnection在Firefox和Safari中不是构造函数_Javascript_Firefox_Websocket_Safari_Webrtc - Fatal编程技术网

Javascript RTPeerConnection在Firefox和Safari中不是构造函数

Javascript RTPeerConnection在Firefox和Safari中不是构造函数,javascript,firefox,websocket,safari,webrtc,Javascript,Firefox,Websocket,Safari,Webrtc,我正在编写一个非常简单的WebRTC应用程序,以从RaspberryPi Zero摄像机流式传输实时视频。我正在使用设置服务器和JavaScript来连接和播放视频流。我的JavaScript代码基于,它基本上使用RTC web套接字方法来执行协商 他们的代码在Chrome上运行得很好,但在Firefox或Safari下似乎不起作用 RTCPeerConnection = window.webkitRTCPeerConnection; RTCSessionDescription = window

我正在编写一个非常简单的WebRTC应用程序,以从RaspberryPi Zero摄像机流式传输实时视频。我正在使用设置服务器和JavaScript来连接和播放视频流。我的JavaScript代码基于,它基本上使用RTC web套接字方法来执行协商

他们的代码在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
        };
    }
}
rtpeerconnection=window.webkittrtpeerconnection;
RTCSessionDescription=window.RTCSessionDescription;
RTCIceCandidate=window.RTCIceCandidate;
var-ws;
函数信号(url、onStream、onError、onClose、onMessage){
如果(“窗口中的WebSocket”){
var-pc;
ws=新的WebSocket(url);
ws.onopen=函数(){
var config={“iceServers”:[{“URL”:[“stun:stun.l.google.com:19302”]};

pc=new rtpeerconnection(config);//我的错误被证明是一个愚蠢的打字错误。代码开头的rtpeerconnection声明是错误的。它应该是:

RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection;

似乎
rtpeerconnection
不可构造。您是否尝试删除
新的
?我刚刚尝试过,Chrome和Firefox都抱怨。错误消息说
rtpeerconnection
不能用作函数。