Возможность отслеживания ивентов 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.
 

Max

Administrator
Staff member
Добрый день.
В сборке Android SDK 1.1.0.29 добавлена возможность определить при проигрывании, заглушено ли аудио или видео в потоке. Подробнее здесь.
 

R2D2

Member
Версия Android SDK1.1.0.XX неприемлема потому что минимальный уровень API - 26 (Android 7). Если эту SDK внедрить это приведёт к отвалу 30% пользователей.
Есть свежая версия Android SDK1.0.X.XX (Где минимальный уровень API 19)???
Где ее можно обновлять????
 

Max

Administrator
Staff member
Есть свежая версия Android SDK1.0.X.XX (Где минимальный уровень API 19)???
Где ее можно обновлять????
Завели тикет WCS-3245 по бэкпорту данной функции в Android SDK 1.0. Сообщим здесь о готовности.
Обращаем внимание, что на устройствах с Android 8 и выше необходимо использовать Android SDK 1.1.
 

R2D2

Member
Как gradle прописать загрузку той или иной библиотеки в зависимости от версии Android???
 

Max

Administrator
Staff member
Как gradle прописать загрузку той или иной библиотеки в зависимости от версии Android???
Это будут два разных apk, каждый со своей библиотекой, см здесь, шаг 3. Для того, чтобы опубликовать несколько APK в зависимости от требований Level API, Google Play поддерживает multiple APK.
 

R2D2

Member
через одно место.
Почему нельзя сделать универсальную библиотеку?
и в чем опасность использования 1.0.X.XX на андройдах выше 8?
 

R2D2

Member
Это будут два разных apk, каждый со своей библиотекой, см здесь, шаг 3. Для того, чтобы опубликовать несколько APK в зависимости от требований Level API, Google Play поддерживает multiple APK.
щас apk уже не рекомендуется, и мы не используем apk - только aab
 
Last edited:

R2D2

Member
Это будут два разных apk, каждый со своей библиотекой, см здесь, шаг 3. Для того, чтобы опубликовать несколько APK в зависимости от требований Level API, Google Play поддерживает multiple APK.
И что каждый раз перед выкладкой такую манипуляцию с каждым файлом библиотеки надо делать?
у вас библиотека вообще не френдли для программистов!
 

Max

Administrator
Staff member
через одно место.
Почему нельзя сделать универсальную библиотеку?
и в чем опасность использования 1.0.X.XX на андройдах выше 8?
В том, что в 1.0 более старая версия WebRTC библиотеки, которая хуже работает с новыми API.
А в более новых версиях библиотеки Google повысили требования к Level API, потому и пришлось разделить Android SDK. Мы не разрабатываем и не поддерживаем WebRTC библиотеку сами, а используем готовые сборки из исходников от Google, поэтому тут претензии не к нам.
И что каждый раз перед выкладкой такую манипуляцию с каждым файлом библиотеки надо делать?
Если Вам удастся найти версию WebRTC библиотеки, которая будет официально, свежей и при этом совместимой со всеми Level API, поделитесь этой версией с нами, пожалуйста.
А до тех пор используем костыли, рекомендованные самим Google, кстати.
щас apk уже не рекомендуется, и мы не используем apk - только aab
AAB также поддерживает несколько конфигураций для различных устройств.
 
Top