Выбор микрофона при демонстрации рабочего стола

Renat

New Member
Добрый день. Есть ли возможность выбрать audio.deviceId при демонстрации рабочего стола? Или доступна только единственная опция audio = true. Тогда какое устройство выберется - первое из списка?

При использовании audio = true, звук не слышно (хотя при использовании первого в списке микрофона при передаче изображения с камеры все хорошо). В логе следующее:

19:14:54 INFO webrtc - {audio: true, video: {…}}
scripts.bundle.js:28335 19:14:54 INFO webrtc - Request for audio stream
scripts.bundle.js:28335 19:14:54 INFO webrtc - Got audio stream, add it to video stream
 
Last edited:

Max

Administrator
Staff member
Есть ли возможность выбрать audio.deviceId при демонстрации рабочего стола? Или доступна только единственная опция audio = true.
Да, должна быть возможность выбрать конкретный микрофон.
Для этого нужно совместить два примера:
1) Screen Sharing с микрофоном
https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/screen-sharing/screen-sharing.html
https://wcs5-eu.flashphoner.com/client2/examples/demo/streaming/screen-sharing/screen-sharing.js
2) Media Devices
https://wcs5-eu.flashphoner.com/cli...dia_devices_manager/media_device_manager.html
https://wcs5-eu.flashphoner.com/cli...media_devices_manager/media_device_manager.js
В первом примере показано, что ставим audio:true при использовании микрофона.
Code:
var constraints = {
        video: {
            width: parseInt($('#width').val()),
            height: parseInt($('#height').val()),
            frameRate: parseInt($('#fps').val()),
            type: "screen"
        },
        audio: $("#useMic").prop('checked')
    };
Во втором можно вывести список и выбрать желаемый.
Тогда какое устройство выберется - первое из списка?
Это поведение может меняться от версии к версии браузера, поэтому чтобы на него не полагаться, лучше выбирать наверняка из видимого списка устройств, как в примере Media Devices.
 

Renat

New Member
К сожалению, это невозможно проверить т.к. для Chrome в flashphoner.js идет явный хак, убирающий эту возможность:
Code:
var requestMicStream = false;if (screenShare) {
if (constraints.audio && adapter.browserDetails.browser == "chrome") {
requestMicStream = true;delete constraints.audio;}
}

// This hack for chrome only, firefox supports screen-sharing + audio nativelyif (requestMicStream && adapter.browserDetails.browser == "chrome") {
logger.info(LOG_PREFIX, "Request for audio stream");navigator.getUserMedia({audio: true}, function (stream) {
logger.info(LOG_PREFIX, "Got audio stream, add it to video stream");video.srcObject.addTrack(stream.getAudioTracks()[0]);resolve(display);});} else {
resolve(display);}
А в новых версиях Firefox расширение для браузера больше не поддерживается.
 

Max

Administrator
Staff member
Перепороверим наш пример Screen Sharing. Попытаемся добавить выбор микрофона.
По результатам отпишем.
 

Max

Administrator
Staff member
Top