Opentok, когда отключенное видео показывает, что веб-камера включена

Я использую Opentok на веб-сайте JS и вижу, как включается светодиод веб-камеры, даже если я запустил видеоконференцию. Когда я звоню, я не вижу другого пользователя, но этот индикатор включения действительно раздражает.

Это то, что я делаю для использования только голоса:

var pubOptions = {publishAudio:true, publishVideo:false};

// Инициализируем Publisher и помещаем его в элемент с id="publisher"

var publisher = TB.initPublisher(apiKey, 'publisher',pubOptions);

Я что-то упустил, чтобы сделать правильный голосовой вызов?

Спасибо


person agonza1    schedule 05.04.2017    source источник
comment
Также вы используете устаревшую версию initPublisher. Вместо этого вы должны сделать это: var publisher = OT.initPublisher('publisher', pubOptions); (при условии, что на странице есть элемент с идентификатором publisher)   -  person aiham    schedule 05.04.2017
comment
Спасибо за информацию! относительно этого изменения у меня есть элемент publisher на странице, но по какой-то причине элемент видео прикреплен к концу html. Если я использую устаревшую конфигурацию, она прикрепляется к publisher div   -  person agonza1    schedule 05.04.2017
comment
Я только что проверил это, и он отлично работает, пока элемент прикреплен к странице ДО вызова initPublisher. Если вы уверены, что элемент существует, вы можете выбрать его самостоятельно и предоставить его initPublisher, например: var el = document.querySelector('#publisher'); var publisher = OT.initPublisher(el, {videoSource: null});. Я рекомендую вам избегать подписи устаревшего метода.   -  person aiham    schedule 05.04.2017
comment
Я подтвердил, что устаревшая версия работает для вас потому, что вы вызываете initPublisher до того, как элемент загрузится, вероятно, потому, что тег <script> помещается перед публикатором в HTML. Вы должны либо переместить свой Javascript ниже элемента publisher, либо использовать прослушиватель событий для запуска вашего Javascript после загрузки страницы.   -  person aiham    schedule 05.04.2017
comment
Да! это было связано с издателем инициализации перед загрузкой страницы ... Я просто переместил его, чтобы сделать int на window.onload, и он работает. Спасибо еще раз!   -  person agonza1    schedule 06.04.2017


Ответы (1)


Если вам вообще не нужно видео во время разговора, вам следует использовать свойство videoSource вместо свойства publishVideo.

publishVideo предназначен только для начального состояния издателя, но он по-прежнему запрашивает доступ к камере на случай, если вы позже вызовете publisher.publishVideo(true).

Если вы установите для videoSource значение null, тогда он не будет запрашивать доступ к камере.

var pubOptions = {videoSource: null};

Если установить для этого свойства значение null или false, браузер не запрашивает доступ к камере, и видео не публикуется. В голосовом вызове задайте для этого свойства значение null или false для каждого издателя.

От: https://tokbox.com/developer/sdks/js/reference/OT.html#initPublisher

person aiham    schedule 05.04.2017