Перейти к содержанию

Оповещения о заглушенном аудио при автозапуске воспроизведения

В настоящее время в абсолютном большинстве браузеров при автоматическом запуске воспроизведения звук должен быть заглушен (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);
    }
}