В сборке 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); } });