Как получить доступ к Camara и Mic в глобальном масштабе в Agora.io - PullRequest
1 голос
/ 23 октября 2019

Я использую Angular 7 с Angora.Io. Моя проблема в том, что когда я запускаю свой проект Angular локально, тогда я успешно получаю доступ к своей камере и микрофону, но когда я пытаюсь работать глобально, как "192.105.2.448", тогда я не получаюне получить доступ к моей камере и микрофону, и ошибка, как это выдается. Пожалуйста, помогите мне!

join(): void {

    this.client.setClientRole('host');
    this.localStream = this.agoraService.createStream({ streamID: this.uid, audio: true, video: true, screen: false });
    this.localStream.setVideoProfile('720p_3');
    this.assignLocalStreamHandlers();
    this.init();
    this.client.join(null , this.channel.value, this.uid);
}

publish(): void {

    this.liveplay = true;
    this.client.publish(this.localStream, err =>   console.log('Publish local stream error: ' + err));  }

protected init(): void {

    this.localStream.init(
        () => {
            // The user has granted access to the camera and mic.
            console.log('getUserMedia successfully' , this.localStream);
            this.localStream.play('agora_local');
            this.connected = true;
        },
        err => console.log('getUserMedia failed', err)
    );
}


private assignLocalStreamHandlers(): void {

    console.log('==========>>>>>>>2 ');
    this.localStream.on(StreamEvent.MediaAccessAllowed, () => {
        console.log('accessAllowed --->>> ', this.localStream);
    });
    // The user has denied access to the camera and mic.
        this.localStream.on(StreamEvent.MediaAccessDenied, () => {
        console.log('accessDenied');
    });
}

11: 35: 01: 76 Agora-SDK [ОШИБКА]: [3] Доступ к носителю NOT_SUPPORTED: разрешены только безопасные источники

[Устаревание] getUserMedia () больше не работает с небезопасными источниками. Чтобы использовать эту функцию, вы должны рассмотреть возможность переключения вашего приложения на безопасный источник, такой как HTTPS.

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

То, что вы испытываете, не является проблемой, уникальной для Agora SDK, но является ожидаемым поведением любого веб-браузера. Чтобы получить доступ к разрешениям Camera и Microphone, все браузеры требуют, чтобы вы использовали безопасное соединение (читай: HTTPS), и блокируют доступ к любым веб-сайтам, к которым нет доступа по защищенному соединению.

Браузеры имеют одну специальную функцию, которая имеет белый список localhost, так что любые проекты, запускаемые локально с использованием localhost, будут иметь доступ к разрешениям устройства. Вот почему ваш проект работает "локально" , но не "глобально" .

Чтобы вы могли протестировать свой проект "глобально" тогда вам нужно будет использовать домен с ssl-сертификатом, чтобы вы увидели https в URL. Хотя возможно использование HTTPS с IP-адресом, это не распространено и не рекомендуется ( Возможно ли иметь SSL-сертификат для IP-адреса, а не доменного имени? )

Один вариант (который мне нравится использовать) для тестирования - это NGROK (https://ngrok.com), они предлагают сервис туннелирования, который создает "туннель" с вашей машины и предоставляет https URL, который позволяет вам тестировать проектыкоторые работают на вашем локальном компьютере.

отказ от ответственности: Я никоим образом не связан с NGROK, это инструмент, который я считаю полезным и который я хочу использовать при тестировании своегокод, чтобы обойти ограничения, налагаемые браузерами, без развертывания моей работы на удаленном сервере.

0 голосов
/ 23 октября 2019

Я не в Angular, но так как Агора предоставляет некоторые API в отношении пользовательских аудио / видео источников. Вы можете проверить https://docs.agora.io/en/Interactive%20Broadcast/custom_video_web?platform=Web

...