更新时间: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();
}
}
父主题: 典型场景