文档首页/ IdeaHub/ IdeaShare/ MAC SDK/ 典型场景/ 场景8: 遥控器
更新时间:2022-03-21 GMT+08:00
分享

场景8: 遥控器

描述

在连接设备后,客户端可以查询设备状态,包括:麦克风状态、扬声器状态、摄像头状态、音量大小,是否在会议中,并且操作这些设备状态,如调节音量大小、离开会议(前提是已经入会)

业务流程

  1. 接口调用
  1. 调用getRemoteServiceStatus查询连接设备状态
  2. 使用Block回调处理回调结果
  3. 调用遥控器接口如(setRemoteMicMute 或 setXXXXX)请求遥控远端设备
  4. 使用Block回调处理遥控器接口的回调事件
  5. 通过notifyDelegate收到服务端主动推送过来的通知事件onxxxxNotify 事件,更新客户端遥控器状态
  6. 在会议中时,调用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) {  
}];

相关文档