«Uncaught ReferenceError: комната не определена» при попытке отключиться от комнаты Twilio Video - PullRequest
4 голосов
/ 07 апреля 2020

Я использую Twilio Video Javascript API для потоковой передачи и записи видеоконтента из браузера. Приложение встроено в Nodejs/Express, и я загружаю Twilio API по ссылке CDN на странице. Пока я могу успешно создать экземпляр комнаты и записать видео на сервер со следующим кодом:

    function createAndConnectToRoom(roomName) {
        Twilio.Video.connect(Token, { name: roomName }).then(room => {
            console.log(`Successfully joined a Room: ${room}`);
            room.on('participantConnected', participant => {
                console.log(`A remote Participant connected: ${participant}`);
            });
        }, error => {
            console.error(`Unable to connect to Room: ${error.message}`);
        });

        displayLocalVideo();
    }

Моя проблема в том, что я не могу отключиться от сервера. В идеале, я хотел бы иметь большую кнопку, которая отключает пользователя и завершает комнату. В документах Twilio они советуют использовать следующий код (внешняя функция моя, внутренний код Twilio). Однако я получаю Uncaught ReferenceError: the room is not defined в консоли Chrome, когда запускаю эту функцию с событием onclick.

    function disconnectFromRoom() {
        room.on('disconnected', room => {
            // Detach the local media elements
            room.localParticipant.tracks.forEach(publication => {
                const attachedElements = publication.track.detach();
                attachedElements.forEach(element => element.remove());
            });
        });

        // To disconnect from a Room
        room.disconnect();

    }

Я также пытался сохранить "комнату" в глобальной переменной при ее создании и затем передать эту переменную в функцию отключения. Но даже тогда я не могу назвать room.on.

Я, кажется, неправильно понимаю что-то, основанное c на том, как использовать API для завершения комнаты.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Переместите свой код room.on ('отключение) в функцию createAndConnectToRoom. Это не обязательно должно быть внутри вашей функции отключения!

В вашей функции disconnectFromRoom:

    function disconnectFromRoom() {
       if (rm) {
          rm.disconnect();
       }
    }

Также хотите добавить, что

    room.on('disconnected', room => {

имеет конфликт пространства имен

0 голосов
/ 17 апреля 2020

Похоже, у вас нет доступа к переменной room в функции disconnectFromRoom. Попробуйте сохранить всю комнату, созданную в некоторой глобальной переменной, такой как window.room, и затем получить доступ к комнате из окна в функции disconnectFromRoom.

Пожалуйста, посмотрите также на этот пример .

...