Я программирую очень простое приложение WebRTC для потоковой передачи видео в реальном времени с камеры RaspberryPi Zero.Я использую драйвер Linux Project UV4L для настройки сервера и JavaScript для подключения и воспроизведения видеопотока.Мой код JavaScript основан на демонстрационной версии UV4L , в которой для согласования используются методы веб-сокетов 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) возникает следующая ошибка:
Ошибка типа: RTCPeerConnection не является конструктором
Согласно Документам MDN , Firefox поддерживает этот конструктор начиная с v22.В чем может быть проблема?