Я пытаюсь добиться обмена видео с помощью rtcmulticonnection между двумя браузерами (например, Chrome в Firefox или наоборот) - PullRequest
0 голосов
/ 28 сентября 2019

Всякий раз, когда я создаю комнату из браузера Chrome и когда пользователь Firefox пытается присоединиться к этой комнате, он выдает мне сообщение «NotReadableError: Failed to allocate videosource».То же самое для Chrome, если я создаю комнату из Firefox, и если Chrome присоединяется, это дает мне «NotReadableError: Не удалось запустить источник видео» Мой код: -

    var connection = new RTCMultiConnection();

    connection.socketURL = 'https://rtcmulticonnection.herokuapp.com:443/';


    /*
    navigator.mediaDevices.getUserMedia(
        {
            audio: true,
            video: {
                width: 500,
                height: 400,
                facingMode: 'user'
            }
        });
        */


    connection.session = {
        audio: true,
        video: true,
    };


    connection.mediaConstraints = {
        audio: true,
        video: {
            width: 500,
            height: 400,
         facingMode: 'user'
        }
    };
    connection.onMediaError = function (error)
    {
        console.error("Error : { "+error+" }");
    }
    connection.sdpConstraints.mandatory = {
        OfferToReceiveAudio: true,
        OfferToReceiveVideo: true
    };


    connection.onstream = function (event) {
        var container_Local = document.getElementById("video-Local");
        var container_remote = document.getElementById("video-Remote");

        if (event.type === 'local') {
           // container_Local.appendChild(event.mediaElement);
    $('.teacher-big-screen').html('').append(event.mediaElement);
        alert("Teacher Stream ID, "+event.streamid+' Is Live');
        }

        if (event.type === 'remote') {
           // container_remote.appendChild(event.mediaElement);
            $('.students-videos').append(event.mediaElement);
            alert("Student Stream ID, "+event.streamid+' Has Joined');

        }

        /*
            event.mediaElement.removeAttribute('src');
            event.mediaElement.removeAttribute('srcObject');

            var video = document.createElement('video');
            video.setAttribute('autoplay', true);
            video.setAttribute('playsinline', true);
            video.setAttribute('controls', true);
            video.setAttribute('class', 'embed-responsive-item');
            video.srcObject = event.stream;
            container.appendChild(video);
        */
    };

    var predefinedRoomId = document.getElementById("room-id");
    // predefinedRoomId.value = ('KEY'+(Math.random() * 100).toString().replace('.', ''));  for number key.
    predefinedRoomId.value = "#" + connection.token() + "#KEY"; //for random alphabaets hash key

    var keyH4 = document.getElementById("KEY");
    keyH4.innerHTML = predefinedRoomId.value;


    document.getElementById('btn-open-room').onclick = function () {
        this.disabled = true;
        connection.open(predefinedRoomId.value || 'predefined-RoomId');
    };

    document.getElementById('btn-join-room').onclick = function () {
        this.disabled = true;
        connection.join(predefinedRoomId.value || 'predefined-RoomId');
    };

Пожалуйста, помогите мне достичь этого :)

...