Возможность отслеживания ивентов mute (video/audio)

Ivan Balychev

New Member
Имеется ли в сдк возможность отслеживания, событий от оппонента о mute video/audio
- в случае с mute video, видео-поток останавливается и все (событий о изменении статуса стрима не приходит)
- в случае с mute audio никаких ивентов не приходит
- по логам никаких ивентов не видно
 

Max

Administrator
Staff member
Добрый день.
Можно контролировать битрейт аудио и видео в проигрываемом потоке при помощи REST API, но это не очень удобно делать из приложения. Создали тикет WCS-3101, чтобы исследовать возможность реализации на стороне SDK, о результатах сообщим.
 

Max

Administrator
Staff member
Добрый день.
Начиная со сборки WCS 5.2.935 и сборки IOS SDK 2.6.32, если клиент использует функцию muteAduio() или muteVideo(), подписчикам отправляется специальное событие. Примеры обработки оповещений о том, заглушено или не заглушено аудио/видео, приведены здесь
 

Ivan Balychev

New Member
@Max Да ивент работает, однако есть проблема
При использовании рум-апи данный ивент не работает
так же у FPWCSApi2Stream при использовании FPWCSApi2RoomManager/FPWCSApi2Room обьекты getVideoState/getAudioState равны nil и при подключении невозможно определить замучен ли уже оппонент

Code:
Error converting audioState JSON to FPWCSApi2MediaState Error Domain=JSONModelErrorDomain Code=5 "Initializing model with nil input object." UserInfo={NSLocalizedDescription=Initializing model with nil input object.}, JSON (null)
Error converting videoState JSON to FPWCSApi2MediaState Error Domain=JSONModelErrorDomain Code=5 "Initializing model with nil input object." UserInfo={NSLocalizedDescription=Initializing model with nil input object.}, JSON (null)
 
Last edited:

Max

Administrator
Staff member
При использовании рум-апи данный ивент не работает
Пожалуйста, убедитесь, что WCS и iOS SDK обновлены до последних сборок.
Мы создали тикет WCS-3184, чтобы проверить, где теряется событие.
Как обходной вариант, Вы можете отправлять собственное оповещение при помощи FPWCSApi2RoomParticipant.sendMessage, например
Code:
- (void)muteAudioChanged:(id)sender {
    if (publishStream) {
        if (_muteAudio.control.isOn) {
            [publishStream muteAudio];
            text = [NSString stringWithFormat:@"%@ is %@", @"audio", @"muted"];
            for (NSString *name in [room getParticipants]) {
                FPWCSApi2RoomParticipant *participant = [room getParticipants][name];
                [participant sendMessage:text];
            }
        } else {
            [publishStream unmuteAudio];
        }
    }
}
и обрабатывать его в FPWCSApi2Room.onMessageCallback
 
Last edited:

Ivan Balychev

New Member
@Max Да все обновлено, иначе бы данного ивент и параметров не было бы :).
Проверьте пожалуйста, так как вариант с отправкой сообщения не очень хорош, потому что данную логику прийдется реализовывать на всех клиентах (веб/иос/андроид и тд)
 

Max

Administrator
Staff member
Добрый день.
К сожалению, пока новостей нет. Мы подняли приоритет данного тикета
 

Max

Administrator
Staff member
Спасибо, так же данная проблема и с android sdk.
В Android SDK пока нет поддержки событий, привязанных к потоку, работы ведутся в тикете WCS-3125.
 

Max

Administrator
Staff member
Проблема с получением событий при проигрывании потока с использованием RoomApi исправлена в сборке iOS SDK 2.6.45.
 
Top