Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
themeRDark
    session.createStream({
        name: streamName,
        display: remoteVideo,
        ...
    }).on(STREAM_EVENT, function(streamEvent) {
        let mutedName="";
        if(streamEvent.payload !== undefined) {
            mutedName=streamEvent.payload.streamName;
        }
        switch (streamEvent.type) {
            case STREAM_EVENT_TYPE.AUDIO_MUTED:
                $("#audioMuted").text(true + " " + mutedName);
                break;
            case STREAM_EVENT_TYPE.AUDIO_UNMUTED:
                $("#audioMuted").text(false + " " + mutedName);
                break;
            case STREAM_EVENT_TYPE.VIDEO_MUTED:
                $("#videoMuted").text(true + " " + mutedName);
                break;
            case STREAM_EVENT_TYPE.VIDEO_UNMUTED:
                $("#videoMuted").text(false + " " + mutedName);
                break;

        }
        console.log("Received streamEvent ", streamEvent.type);
    }).play();

Определение статуса потока при подключении к потоку

При подключении к потоку, подписчик может определить, заглушена аудио/видео дорожка в потоке или нет, при помощи методов Stream.getAudioState() и Stream.getVideoState():

Code Block
languagejs
themeRDark
    session.createStream({
        name: streamName,
        display: remoteVideo,
        ...
    }).on(STREAM_STATUS.PLAYING, function (stream) {
        if (stream.getAudioState()) {
            $("#audioMuted").text(stream.getAudioState().muted);
        }
        if (stream.getVideoState()) {
            $("#videoMuted").text(stream.getVideoState().muted);
        }
        ...
   }).play;

Определение статусов входящих потоков при подключении к выходному потоку микшера

Начиная со сборки WCS 5.2.1011, при подключении подписчика к выходному потоку микшера, он получает набор событий STREAM_EVENT на каждый входящий поток микшера, если хотя бы в одном из них аудио или видео было заглушено. При этом порядок получения этих событий не гарантируется и не зависит от порядка добавления потоков в микшер.

Обработка события на бэкенде

Для того, чтобы обработать событие об изменении состояния потока на бэкенде, к приложению должны быть добавлены методы sendStreamEvent и SreamEventStreamEvent

Code Block
languagebash
themeRDark
add app-rest-method MyAppKey sendStreamEvent
add app-rest-method MyAppKey StreamEvent

...