更新时间:2022-03-21 GMT+08:00
场景8: 遥控器
描述
在连接设备后,客户端可以查询设备状态,包括:麦克风状态、扬声器状态、摄像头状态、音量大小,是否在会议中,并且操作这些设备状态,如调节音量大小、离开会议(前提是已经入会)
业务流程
- 接口调用
- 调用getRemoteServiceStatus查询连接设备状态
- 使用Block回调处理回调结果
- 调用遥控器接口如(setRemoteMicMute 或 setXXXXX)请求遥控远端设备
- 使用Block回调处理遥控器接口的回调事件
- 通过notifyDelegate收到服务端主动推送过来的通知事件onxxxxNotify 事件,更新客户端遥控器状态
- 在会议中时,调用leaveConference 或finishConference 离开会议,使用Block回调处理回调事件结果
注意事项
连接设备后遥控器功能才可用。
示例代码
// 查询远端设备状态,使用Block处理回调结果 if (mShareServiceController != nil) { int result = [mShareServiceController getRemoteServiceStatus:^(id status) {
self.remoteserviceStatus = (RemoteServiceStatus *)status;
if (self.remoteserviceStatus.isMute != 0) { dispatch_async(dispatch_get_main_queue(), ^{ self.openMicrophoneButton.enabled = YES; self.closeMicrophoneButton.enabled = NO; }); }
}];
}
设备控制,此处以麦克风静音和闭音为例, 扬声器、摄像头、音量控制流程类似不再赘述 int result = [mShareServiceController setRemoteMicMute:false:^(id micOpenCallback) { }]; if (result != 0) { NSLog(@"open Microphone failed"); } else{ NSLog(@"open Microphone success"); self.closeMicrophoneButton.enabled = YES; self.openMicrophoneButton.enabled = NO; }
// 远端设备主动推送OnUpdateRemoteMicMuteNotify事件通知UI进行更新 - (void) OnRemoteMicStatusNotify : (int) isMute { NSLog(@"OnRemoteMicStatusNotify: isMic = [%d]",isMute); if (isMute != 0) { dispatch_async(dispatch_get_main_queue(), ^{ self.openMicrophoneButton.enabled = YES; self.closeMicrophoneButton.enabled = NO; }); } else { dispatch_async(dispatch_get_main_queue(), ^{ self.closeMicrophoneButton.enabled = YES; self.openMicrophoneButton.enabled = NO; }); } }
// 离开会议 int result = [mShareServiceController leaveConference:^(id leaveConferencecallback) { }];
// 结束会议 int result = [mShareServiceController finishConference:^(id finishConferencecallback) { }];
父主题: 典型场景