Pano开发者中心
  • 开发者中心
  • 下载中心

›远程控制

新手入门

  • 简介
  • 名词解释
  • 创建第一个应用

规则说明

  • Channel ID命名规则
  • 权限控制
  • 计费说明
  • 频道最大时长说明
  • 每月一万分钟免费说明
  • 布局参数说明
  • 水印

场景方案

    教育行业

    • 1vN互动小班课
    • 互动直播大班课

快速接入

  • 简介
  • 音视频

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native
    • Unity

    白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Electron
    • Flutter
    • React Native

高级功能(RTC)

  • 简介
  • 屏幕共享
  • 分组讨论
  • 状态回调
  • 设备诊断
  • 音量指示
  • 控制声音
  • 声卡操作
  • 混音/伴音
  • 混响
  • 耳返
  • 变声
  • 美颜
  • 音视频数据回调
  • 音视频外部采集
  • 收发多路视频
  • 多窗口渲染
  • 性能检测
  • 截图
  • 反馈

高级功能(RTS)

  • 简介
  • 白板

    • Windows (C++)
    • iOS (Objective-C)
    • Android (Java)
    • Web
    • Flutter

    标注

    • 视频标注
    • 共享标注
    • 外部标注

    消息

    • 消息服务

    远程控制

    • 远程控制

操作实践

  • 切换大小屏

RESTful API

  • 基本格式
  • 生成Token
  • 频道管理
  • 云端录制
  • CDN推流
  • 文档转码
  • 消息服务
  • 服务端消息通知

SDK API

  • SDK接口说明
  • Windows (C++)
  • macOS/iOS (Objective-C)
  • Android (Java)
  • Web SDK (IE专用版)
  • Web SDK

    • 浏览器兼容性
    • RtcEngine
    • GroupManager
    • RtcWhiteboard
    • RtsService
    • RtcMessage
    • Annotation
    • Constants

更新记录

  • 简介
  • Windows
  • macOS
  • iOS
  • Android
  • Electron
  • Flutter
  • React Native
  • Unity
  • Web(全功能SDK)
  • Web(RTS SDK)
  • Web(IE专用音视频SDK)

帮助

  • FAQ
  • 更多帮助

远程控制

简介

Pano SDK 支持对桌面端(Windows、macOS、Electron)进行远程控制。

  • 使用远程控制前,被控端需要先共享屏幕,具体内容请点此查看。
  • macOS 首次被控时,需要用户在「系统偏好设置 - 安全性与隐私 - 隐私 - 辅助功能」中添加允许 App 控制电脑。
  • "360安全卫士"会拦截鼠标操作,如果远程控制时鼠标点击无效,请查看电脑是否安装"360安全卫士"等安全类软件,可以将其退出后再试。

远程控制的流程:

  • 被控端共享屏幕
  • 控制端发起控制请求
  • 被控端收到请求并同意控制
  • 控制端操作被控端的设备

各端 SDK 相关接口,请查看下列介绍:

  • Windows (C++)
  • macOS/iOS (Objective-C)
  • Android (Java)
  • Electron

Windows (C++)

获取远程控制服务

通过 RtcEngine 实例的 getRemoteController 方法获取远程控制服务(RemoteController)。

远程控制事件通知

通过继承 RemoteController::Callback 类,重写回调接口来处理 Pano SDK 返回的通知。
通过 RemoteController 实例的 setCallback 方法设置远程控制的通知。
和远程控制有关的事件通知如:

  • onRemoteControlRequest 其他用户发起远程控制请求
  • onRemoteControlResponse 其他用户响应远程控制请求
  • onRemoteControlCancelled 其他用户取消远程控制请求

发起控制请求

控制端通过 RemoteController 实例的 requestControl 方法发起控制请求。

响应控制请求

被控端通过 RemoteController 实例的 acceptControl 方法接收请求,rejectControl 方法拒绝请求。

取消远程控制

控制端和被控端都可以通过 RemoteController 实例的 cancelControl 方法取消远程控制。


macOS/iOS (Objective-C)

获取远程控制服务

通过 PanoRtcEngineKit 实例的 remoteController 属性获取远程控制服务(PanoRtcRemoteController)。

远程控制事件通知

通过实现 PanoRtcRemoteControllerDelegate 协议的回调方法来处理 Pano SDK 返回的通知。
通过 PanoRtcRemoteController 实例的 delegate 属性设置远程控制的回调。
和远程控制有关的事件通知如:

  • - onRemoteControlRequest:needElevation: 其他用户发起远程控制请求
  • - onRemoteControlResponse:result: 其他用户响应远程控制请求
  • - onRemoteControlCancelled:reason: 其他用户取消远程控制请求

发起控制请求

控制端通过 PanoRtcRemoteController 实例的 - requestRemoteControl:needElevation: 方法发起控制请求。

响应控制请求

被控端通过 PanoRtcRemoteController 实例的 - acceptRemoteControl: 方法接收请求,- rejectRemoteControl: 方法拒绝请求。

取消远程控制

控制端和被控端都可以通过 PanoRtcRemoteController 实例的 - cancelRemoteControl: 方法取消远程控制。

适用于iOS的特殊方法

由于移动端没有修饰键(Control/Ctrl, Shift, Command/Windows, CapsLock, Option/Alt),所以当需要模拟被控端操作这些按键时,控制端需要调用 PanoRtcRemoteController 实例的以下方法:

  • - setModifierFlags:flags: 设置键盘修饰符
  • - sendKeyboardEvent:event: 发送键盘事件

例如,要模拟按下 Control+Option+A (Ctrl+Alt+A)的组合键,示例代码如下:

// 假设 remoteController 为 PanoRtcRemoteController 实例,被控端 userId 为 12345
// 先设置修饰键
[remoteController setModifierFlags:12345 flags:PanoModifierFlagControl | PanoModifierFlagOption];
// 再按下 A 键
PanoKeyboardEvent * panoKeyboardEvent = [[PanoKeyboardEvent alloc] init];
panoKeyboardEvent.type = PanoKeyboardEventPressDown;
panoKeyboardEvent.asciiCode = 0x41; // A 的 ASCII 码为 65 (10进制) = 0x41 (十六进制)
[remoteController sendKeyboardEvent:12345 event:panoKeyboardEvent];
// 取消修饰键
[remoteController setModifierFlags:12345 flags:0];

Android (Java)

获取远程控制服务

通过 RtcEngine 实例的 getRemoteController 方法获取远程控制服务(RtcRemoteController)。

远程控制事件通知

通过实现 RtcRemoteController.Callback 接口的回调方法来处理 Pano SDK 返回的通知。
通过 RtcRemoteController 实例的 setCallback 方法设置远程控制的回调。
和远程控制有关的事件通知如:

  • onRemoteControlRequest 其他用户发起远程控制请求
  • onRemoteControlResponse 其他用户响应远程控制请求
  • onRemoteControlCancelled 其他用户取消远程控制请求

发起控制请求

控制端通过 RtcRemoteController 实例的 requestControl 方法发起控制请求。

响应控制请求

被控端通过 RtcRemoteController 实例的 acceptControl 方法接收请求,rejectControl 方法拒绝请求。

取消远程控制

控制端和被控端都可以通过 RtcRemoteController 实例的 cancelControl 方法取消远程控制。

适用于Android的特殊方法

由于移动端没有修饰键(Control/Ctrl, Shift, Command/Windows, CapsLock, Option/Alt),所以当需要模拟被控端操作这些按键时,控制端需要调用 RtcRemoteController 实例的以下方法:

  • setModifierFlags 设置键盘修饰符
  • sendKeyboardEvent 发送键盘事件

例如,要模拟按下 Control+Option+A (Ctrl+Alt+A)的组合键,示例代码如下:

// 假设 remoteController 为 RtcRemoteController 实例,被控端 userId 为 12345
// 先设置修饰键
remoteController.setModifierFlags(12345, Keyboard.ModifierFlag.CONTROL | Keyboard.ModifierFlag.Option);
// 再按下 A 键,A 的 ASCII 码为 65 (10进制) = 0x41 (十六进制)
remoteController.sendKeyboardEvent(12345, Keyboard.Action.DOWN, 0x41);
// 取消修饰键
remoteController.setModifierFlags(12345, Keyboard.ModifierFlag.NONE);

Electron

Electron远程控制的相关介绍,请点此查看。

Last updated on 2022/1/17
← 消息服务切换大小屏 →
  • 简介
  • Windows (C++)
    • 获取远程控制服务
    • 远程控制事件通知
    • 发起控制请求
    • 响应控制请求
    • 取消远程控制
  • macOS/iOS (Objective-C)
    • 获取远程控制服务
    • 远程控制事件通知
    • 发起控制请求
    • 响应控制请求
    • 取消远程控制
    • 适用于iOS的特殊方法
  • Android (Java)
    • 获取远程控制服务
    • 远程控制事件通知
    • 发起控制请求
    • 响应控制请求
    • 取消远程控制
    • 适用于Android的特殊方法
  • Electron
浙ICP备20002645号 ©2019-2022 Pano拍乐云