В сборке IOS SDK 2.6.32 добавлена возможность получать при проигрывании потока события от публикующей стороны. Таким образом можно определить, заглушено ли аудио или видео в потоке: если клиент использует функцию muteAduio() или muteVideo(), подписчикам отправляется специальное событие. Чтобы получить это событие при проигрывании потока, необходимо переопределить функцию FPWCSApi2Stream.onStreamEvent в Objective C приложении или WCSStream.onStreamEvent в Swift приложении.
Пример для Objective C code
[_remoteStream onStreamEvent:^(FPWCSApi2StreamEvent *streamEvent){
NSLog(@"No remote stream, %@", streamEvent.type);
if ([streamEvent.type isEqual:[FPWCSApi2Model streamEventTypeToString:kFPWCSStreamEventTypeAudioMuted]]) {
[_remoteControl onAudioMute:true];
}
if ([streamEvent.type isEqual:[FPWCSApi2Model streamEventTypeToString:kFPWCSStreamEventTypeAudioUnmuted]]) {
[_remoteControl onAudioMute:false];
}
if ([streamEvent.type isEqual:[FPWCSApi2Model streamEventTypeToString:kFPWCSStreamEventTypeVideoMuted]]) {
[_remoteControl onVideoMute:true];
}
if ([streamEvent.type isEqual:[FPWCSApi2Model streamEventTypeToString:kFPWCSStreamEventTypeVideoUnmuted]]) {
[_remoteControl onVideoMute:false];
}
}]; |
Пример для Swift code
playStream?.onStreamEvent({streamEvent in
if (streamEvent?.type == FPWCSApi2Model.streamEventType(toString: .fpwcsStreamEventTypeAudioMuted)) {
self.remoteViewController?.onAudioMute(true);
}
if (streamEvent?.type == FPWCSApi2Model.streamEventType(toString: .fpwcsStreamEventTypeAudioUnmuted)) {
self.remoteViewController?.onAudioMute(false);
}
if (streamEvent?.type == FPWCSApi2Model.streamEventType(toString: .fpwcsStreamEventTypeVideoMuted)) {
self.remoteViewController?.onVideoMute(true);
}
if (streamEvent?.type == FPWCSApi2Model.streamEventType(toString: .fpwcsStreamEventTypeVideoUnmuted)) {
self.remoteViewController?.onVideoMute(false);
}
}); |