peerjs, mediaConnection.answer (stream) c выключенными видео или аудио

Я пытаюсь получить поток без звука и видео после вызова события peercall.answer , но я не могу понять одну вещь. Я получаю удаленный поток с включенными треками, ПОЧЕМУ? Как я могу проверить полученный поток? На самом деле я получаю remoteStream без звука и без изображения, как нужно, но я могу убедиться в этом только визуально и на слух. Я хочу предоставить пользователю выбор, войти без видео и аудио.

Пример того что я хочу проверить:

if(peercall.remoteStream.getVideoTracks()[0].enabled===false){
        //...do something

}

Сам код:

    var peercall,myPeerID;

myPeer.on('open', peerID => { // joining to the roomID with socket.io
    socket.emit('joinRoom', {'room': roomId, userData, peerID});
    myPeerID = peerID;
})

navigator.mediaDevices.getUserMedia({
    audio: true, video: {facingMode: "user", width: 640, height: 360}
}).then(function (myStream) {

    myStream.getAudioTracks()[0].enabled=false //disabling my AudioTrack
    myStream.getVideoTracks()[0].enabled=false //disabling my VideoTrack

    //...here is appending my video to DOM
    createMyVideo(video,mediaStream)

    socket.on('user-connected', user => { // new user connected, "user" contains his peerID

        //new user connected, let's call him
        peercall = myPeer.call(user.peerID, myStream, { // my own serialized data
            metadata: {
                'username': username,
                'videoTrack': myStream.getVideoTracks()[0].enabled,
                'audioTrack': myStream.getAudioTracks()[0].enabled
            }
        });// call to user.peerID

        peercall.on('stream', function (stream) { // Мне ответили
            const video = doc.createElement('video');

            if (!callList[peercall.peer]) {

                console.log(peercall.remoteStream.getVideoTracks()[0].enabled)// outputs 'true' Почему? but video not displayed
                console.log(peercall.remoteStream.getAudioTracks()[0].enabled) //outputs 'true' Почему? but video not displayed

                if(peercall.remoteStream.getVideoTracks()[0].enabled===false){ //хочу сделать такую проверку, но получаю треки enabled=true как будто
                    //...do something
                }

                //...here is appending remote stream to DOM
                addUserVideoStream(video, peercall.remoteStream) // why the remoteStream contains track
                callList[peercall.peer] = peercall;
            }
        });

    });
}).catch(function (err) {console.log(err)});

//remoteUser side
myPeer.on('call', function (call) { // someone calling to me
    peercall = call;
    let callerIdMetadata = peercall.metadata // callerUser`s metadata
    const video = doc.createElement('video');
    video.muted=false;
    navigator.mediaDevices.getUserMedia ( {//предоставляем браузеру права на видео и звук
        audio: true,
        video: {facingMode: "user",width:640,height:360},
    }).then(function(remoteUserStream) { // берем наш видеопоток

        mediaConstrain(remoteUserStream.getAudioTracks()[0],false) // disabling Audio
        mediaConstrain(remoteUserStream.getVideoTracks()[0],false) // disabling Video

        console.log('beforeAnswerMedia',remoteUserStream.getAudioTracks()[0].enabled) //outputs false, and it is OK
        console.log('beforeAnswerMedia',remoteUserStream.getVideoTracks()[0].enabled) //outputs false, and it is OK

        peercall.answer(remoteUserStream); // let`s answer the call and transfer the mediaStream with disabled audio/video (is not it?) to the caller user

        if(!callList[peercall.peer]){

            //appending Caller User`s Video
            addUserVideoStream(video,peercall.remoteStream)
            callList[peercall.peer] = peercall;
        }

    }).catch(function(err) { console.log(err.name + ": " + err.message); });
});

Ответы (0 шт):