更新时间:2022-03-21 GMT+08:00
场景7: 遥控器
描述
在连接设备后,客户端可以查询设备状态,包括:麦克风状态、扬声器状态、摄像头状态、音量大小、是否在会议中,并且操作这些设备状态,如调节音量大小、离开会议(前提是已经入会)
业务流程
- 调用GetRemoteServiceStatus查询连接设备状态
- 处理回调结果事件OnGetRemoteServiceStatusResult
- 调用遥控器接口(如SetRemoteMicMute )请求遥控远端设备
- 处理回调事件OnSetRemoteMicMuteResult事件
- 收到服务端主动推送过来的通知事件OnxxxxNotify 事件,更新客户端遥控器状态
- 在会议中时,调用LeaveConference 或EndConference 离开会议,处理回调事件结果OnSetLeaveConferenceResult或OnSetEndConferenceResult
注意事项
连接设备后遥控器功能才可用。
示例代码
// 查询远端设备状态 if (mShareServiceController != NULL) { mShareServiceController->GetRemoteServiceStatus(); } // 处理OnGetRemoteServiceStatusResult回调 void IShareEventHandler::OnGetRemoteServiceStatusResult(RemoteServiceStatus *remoteServiceStatus) { qDebug() << "receive OnGetRemoteServiceStatusResult"; if (mUiEvtHandler != NULL) { mUiEvtHandler->HandleGetRemoteSericeStatusResult(remoteServiceStatus); } }
// 设备控制,此处以麦克风静音和闭音为例, 扬声器、摄像头、音量控制流程类似不再赘述 if (mShareServiceController != NULL) { // true 关闭, false 打开 mShareServiceController->SetRemoteMicMute(false); } // 当前对结果事件暂未上报的UI,更新UI在OnUpdateRemoteMicMuteNotify中处理 void IShareEventHandler::OnSetRemoteMicMuteResult(int result) { if (result != 0) { qDebug() << "receive set remote mic mute failed"; } } // 远端设备主动推送OnUpdateRemoteMicMuteNotify事件通知UI进行更新 void IShareEventHandler::OnUpdateRemoteMicMuteNotify(bool isMute) { if (mUiEvtHandler != NULL) { mUiEvtHandler->HandleUpdateMicMuteNotify(isMute); } }
// 离开会议 if (mShareServiceController != NULL) { mShareServiceController->LeaveConference(); } // 离开会议结果回调 void IShareEventHandler::OnSetLeaveConferenceResult(int result) { qDebug() << "receive OnSetLeaveConferenceResult"<< result; if (mUiEvtHandler != NULL) { mUiEvtHandler->HandleLeaveConference(); } } // 结束会议 if (mShareServiceController != NULL) { mShareServiceController->EndConference(); } // 结束会议结果回调 void IShareEventHandler::OnSetEndConferenceResult(int result) { qDebug() << "receive OnSetEndConferenceResult retult = " << result; if (mUiEvtHandler != NULL) { mUiEvtHandler->HandleEndConference(); } }
父主题: 典型场景