Можно ли получить доступ к веб-камере пользователя с помощью администратора, используя RTCMultiConnection#V3

Я создаю аудио / видео / текстовое приложение чата. Я успешно завершил работу с видеоконференцсвязью. Но я не имею никакого представления о доступе к веб-камере пользователя без разрешения пользователя.

Что именно я хочу сделать, так это то, что Admin может получить доступ к веб-камере пользователя. Я создал список пользователей онлайн. Когда админ нажимает на кнопку Watch пользователя в сети, администратор должен иметь возможность доступа к веб-камере пользователя, чтобы администратор мог видеть с веб-камеры этого конкретного пользователя.

Кто-нибудь может направить меня к этому?

1 ответ

Решение

Супер админ может видеть все комнаты, получать видео от любого пользователя из любой комнаты.

Вы можете использовать socket.io или иначе PHP/mySQL, чтобы делить комнаты с супер-администратором.

Супер администратор может просматривать видео любого пользователя, используя метод "join":

var selectedUserId = database.getSelectedUserId();
connection.join(selectedUserId);

Супер администратор должен установить "dontCaptureUserMedia=true", чтобы убедиться, что он не использует свою собственную камеру. А это значит, что супер-админ, похоже, будет просматривать видео любого пользователя из любой комнаты.

connection.dontCaptureUserMedia = true;
var selectedUserId = database.getSelectedUserId();
connection.join(selectedUserId);

Посмотрите, как отправлять или получать пользовательские сообщения с помощью socket.io, а также попробовать демо.

Вот пример кода для супер администратора:

connection.socketCustomEvent = 'super-admin-socket';
connection.dontCaptureUserMedia = true;
connection.connectSocket(function() {
    connection.socket.on(connection.socketCustomEvent, function(message) {
        if (message.newUser === true) {
            connection.join(message.userid);
        }
    });
});

Вот код для всех обычных пользователей. т.е. любой пользователь из любой комнаты:

connection.socketCustomEvent = 'super-admin-socket';
connection.openOrJoin('any-room-id', function() {

    // this message is going toward super-admin
    // super-admin will receive this message
    // super-admin can view this user's camera seamlessly
    // or show his name in a list
    connection.socket.emit(connection.socketCustomEvent, {
        newUser: true,
        userid: connection.userid
    });
});

Посмотрите, как делить комнаты с супер админом:

Следующий код для обычных пользователей:

connection.socketCustomEvent = 'super-admin-socket';
connection.openOrJoin('any-room-id', function() {
    // check if it is a room owner
    if (connection.isInitiator === true) {
        // room owner is sharing his room with super-adin
        connection.socket.emit(connection.socketCustomEvent, {
            newRoom: true,
            roomid: connection.sessionid
        });
    }
});

Следующий код для супер администратора:

connection.socketCustomEvent = 'super-admin-socket';
connection.dontCaptureUserMedia = true;
connection.connectSocket(function() {
    connection.socket.on(connection.socketCustomEvent, function(message) {
        if (message.newUser === true) {
            connection.join(message.userid);
        }

        if (message.newRoom === true) {
            // display room in a list
            // or view room owner's video
            connection.join(message.roomid);
        }
    });
});

Заключение:

Супер админ должен иметь userid от любого пользователя, чтобы просмотреть его видео.

Другие вопросы по тегам