Skip to end of metadata
Go to start of metadata

В настоящее время в абсолютном большинстве браузеров при автоматическом запуске воспроизведения звук должен быть заглушен (mute). Для включения звука требуется действие пользователя: нажатие на кнопку в браузере, перемещение ползунка регулировки громкости и т.п. На стороне клиентского кода при этом необходимо каким-то образом узнать состояние видео элемента, в котором браузер проигрывает видео: заглушено аудио или нет.

В связи с этим, в сборке WebSDK 2.0.241 добавлен тип события потока STREAM_EVENT_TYPE.UNMUTE_REQUIRED . При  получении такого события можно отобразить кнопку включения звука, которую пользователь должен нажать, например

code

    stream = session.createStream(options).on(STREAM_STATUS.PENDING, function (stream) {
        ...
    }).on(STREAM_EVENT, function(streamEvent){
        if (STREAM_EVENT_TYPE.NOT_ENOUGH_BANDWIDTH === streamEvent.type) {
            ...
        } else if (STREAM_EVENT_TYPE.RESIZE === streamEvent.type) {
            ...
        } else if (STREAM_EVENT_TYPE.UNMUTE_REQUIRED === streamEvent.type) {
            console.log("Stream is muted by autoplay policy, user action required to unmute");
            $("#unmute").show();
        }
    });
    stream.play();

Пример обработки нажатия кнопки Unmute 

code

function setStreamVolume(stream, currentVolumeValue) {
    if (stream) {
        if (stream.isRemoteAudioMuted()) {
            stream.unmuteRemoteAudio();
        }
        stream.setVolume(currentVolumeValue);
    }
}
  • No labels