Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.03.2019, 16:05
Новичок на форуме
Отправить личное сообщение для Serg__ Посмотреть профиль Найти все сообщения от Serg__
 
Регистрация: 29.03.2019
Сообщений: 1

video не воспроизводит удаленный поток WebRTC
Пытаюсь связать видео потоки между 2мя браузерами Chrome друг с другом при помощи WebRTC. Есть сигнальный сервер на localhost работающий на сокетах и успешно производящий обмен offer-answer. RTCPeerConnection на вызывающей и принимающей сторонах получают удаленные потоки но связать их с обьектом VIDEO html все равно не удается.

Вот код вызывающей стороны при вызове абонента :

function initiate_call(friend_id)
{
callerPeerConn = new RTCPeerConnection(peerConnCfg);

callerPeerConn.ontrack = function (event) {
    remoteVideo.srcObject = event.streams[0];
}
video = document.querySelector("#me_video");
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
    .then(function (stream) {
        video.srcObject = stream;
        for (const track of stream.getTracks()) {
            callerPeerConn.addTrack(track, stream);
        }
        return callerPeerConn.createOffer();
    })
    .then(
    function (offer) {
        var off = new RTCSessionDescription(offer);
        callerPeerConn.setLocalDescription(
            new RTCSessionDescription(off),
            function () {
                // signaling 
                console.log('send offer +');
            },
            function (err) {
                console.log(err.message);
            }
        )
    });
}


Вот код принимающей стороны :

function accept_send_answer(offer)
{
calleePeerConn = new RTCPeerConnection(peerConnCfg);

calleePeerConn.ontrack = function (event) {
    remoteVideo.srcObject = event.streams[0];
}
video = document.querySelector("#me_video");
calleePeerConn.setRemoteDescription(offer)
    .then(function () {
        navigator.mediaDevices.getUserMedia({ audio: true, video: true })
            .then(function (stream) {
                video.srcObject = stream;
                for (const track of stream.getTracks()) {
                    calleePeerConn.addTrack(track, stream);
                }
                return calleePeerConn.createAnswer();
            })
            .then(function (answer) {
                // sending answer
                console.log("answer was send");
            })
            .catch(function (err) {
                console.log(err.message);
            });
    })
}


И наконец - функция вызывающей стороны при получении ответа :

function got_ansfer(answer)
{
callerPeerConn.setRemoteDescription(
    new RTCSessionDescription(answer),
    function () {
        conso()le.log("caller got answer");
    },
    function (err) {
        console.log(err.message);
    }
)
}



В итоге не у вызывающего не у вызываемого не начинается видео, при том что getRemoteStreams() функция на обоих сторонах не null. В чем может быть дело ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск