VMOS Cloud API
  • 简体中文
  • English
  • 简体中文
  • English
  • 产品介绍
  • 产品类型
  • 产品计费
  • OpenAPI
    • 使用指南
    • 接口文档
    • 错误码
    • 实例属性列表
    • 安卓改机属性列表
    • 回调任务业务类型码
    • 更新日志
  • Android端 SDK
    • 示例搭建
    • 接口说明
    • 回调函数
    • 错误码
    • 更新日志
  • Web H5端 SDK
    • 示例搭建
    • 接口说明
    • H5 SDK 回调函数
    • 错误码
    • 更新日志
  • Windows PC端 SDK
    • 示例搭建
    • 接口说明
    • 回调函数
    • 更新日志
  • 端侧与云机通信开发
    • AIDL接入方式
    • 系统服务API(aidl)
  • 类XP、LSP Hook框架
    • 类Xposed、LSPosed框架
    • 传感器数据动态仿真
  • 相关协议

本文档描述了云手机PC客户端SDK提供的接口。

API概览

引擎(ArmcloudEngine)

接口名称接口描述
instance获取引擎实例(单例模式)
init初始化引擎
destory销毁引擎
setSdkHost设置服务器地址
createPhoneClient创建云机会话,用于操控云机
createBatchControlVideo创建批量拉流控制器
getVideoDeviceList获取摄像头列表
getAudioDeviceList获取麦克风列表

群控(GroupControl)

接口名称接口描述
destory销毁
startEventSync开启群控
stopEventSync停止群控
setEventSyncMaster设置主控
sendInputText发送文本到指定云机输入框
startVideoCapture开启摄像头采集
stopVideoCapture停止采集
getCameraCount获取摄像头数量
getCameraInfo获取摄像头信息

小流(BatchControlVideo)

接口名称接口描述
start开始拉流
stop停止拉流
stop批量停止拉流
stopAll全部停止拉流
contains是否包含
subscribe开始订阅
unsubscribe取消订阅
setVideoSink设置视频渲染器
setBatchControlObserver设置回调

大流(PhoneClient)

接口名称接口描述
start开启拉流
stop停止拉流
setVideoSink设置视频渲染器
setSessionObserver设置回调
sendSwipe发送滚轮事件
sendKeyCode发送键盘按键事件(发送一次完整的DOWN+UP事件)
sendKeyCode发送键盘按键事件(可选择发送单状态事件)
volumeUp增大云机设备音量
volumeDown减小云机设备音量
sendTouchEvent发送触摸事件
setVideoLevel修改拉流画质
screenshot截图
sendInputText发送输入文本
enableAudio开启音频
enableVideo开启视频
enableBlow开启吹一吹
shake摇一摇
startVideoCapture开启摄像头采集
stopVideoCapture停止采集
publishStream发布视频流
unPublishStream停止发布
sendCommand发送adb命令

接口详细说明

获取引擎实例

描述: 获取 ArmcloudEngine 引擎实例

语法:

static ArmcloudEngine* instance();

参数:

参数名类型是否必填描述
appIdstring是设置日志文件路径
logPathwstring否日志文件路径
isInitEnginebool否是否提前初始化引擎

初始化引擎

描述: 初始化 ArmcloudEngine 引擎

语法:

bool init(const std::string& appId, const std::wstring& logPath = L"", bool isInitEngine = false);

参数:

参数名类型是否必填描述
appIdstring是设置日志文件路径
logPathwstring否日志文件路径
isInitEnginebool否是否提前初始化引擎

销毁引擎

描述: 销毁 ArmcloudEngine 引擎

语法:

void destory();

设置服务器地址

描述: 设置服务器地址

语法:

void setSdkHost(const std::string& host);

参数:

参数名类型是否必填描述
hoststring是设置服务器地址

创建云机会话

描述: 创建云机会话

语法:

PhoneClient* createPhoneClient();

创建批量拉流控制器

描述: 创建批量拉流控制器

语法:

BatchControlVideo* createBatchControlVideo();

获取摄像头列表

描述: 获取摄像头列表

语法:

std::vector<DeviceInfo> getVideoDeviceList();

获取麦克风列表

描述: 获取麦克风列表

语法:

std::vector<DeviceInfo> getAudioDeviceList();

销毁

描述: 销毁

语法:

void destory();

开启群控

描述: 开启群控

语法:

void startEventSync(const BatchPhoneConfig& config);

参数:

参数名类型是否必填描述
configBatchPhoneConfig是群控配置

停止群控

描述: 停止群控

语法:

void stopEventSync();

设置主控

描述: 设置主控

语法:

void setEventSyncMaster(const std::string& podId);

参数:

参数名类型是否必填描述
podIdstring是主控云机ID

发送文本到指定云机输入框

描述: 发送文本到指定云机输入框

语法:

void sendInputText(const std::string& podId, const std::string& content);

参数:

参数名类型是否必填描述
podIdstring是主控云机ID
contentstring是发送的文本内容,必须为UTF-8编码

开始拉流(批量)

描述: 开始拉流

语法:

void start(const BatchPhoneConfig& config);

参数:

参数名类型是否必填描述
configBatchPhoneConfig是批量拉流配置

停止拉流(单个)

描述: 停止拉流

语法:

void stop(const std::string& podId);

参数:

参数名类型是否必填描述
podIdstring是需要停止拉流的云机ID

批量停止拉流

描述: 批量停止拉流

语法:

void stop(const std::vector<std::string>& podList);

参数:

参数名类型是否必填描述
podListstd::vectorstd::string是需要停止拉流的云机ID列表

全部停止拉流

描述: 全部停止拉流

语法:

void stopAll();

是否包含

描述: 是否包含指定云机

语法:

bool contains(const std::string& podId);

参数:

参数名类型是否必填描述
podIdstring是需要查询的云机ID

开始订阅

描述: 开始订阅视频流

语法:

void subscribe(const std::string& podId);

参数:

参数名类型是否必填描述
podIdstring是需要订阅视频流的云机ID

取消订阅

描述: 取消订阅视频流

语法:

void unsubscribe(const std::string& podId);

参数:

参数名类型是否必填描述
podIdstring是需要取消订阅视频流的云机ID

设置视频渲染器(批量)

描述: 设置视频渲染器

语法:

void setVideoSink(const std::string& podId, VideoRenderSink* sink);

参数:

参数名类型是否必填描述
podIdstring是需要设置渲染器的云机ID
sinkVideoRenderSink*是视频渲染器

设置回调(批量)

描述: 设置批量控制回调

语法:

void setBatchControlObserver(BatchControlObserver* observer);

参数:

参数名类型是否必填描述
observerBatchControlObserver*是回调

开启拉流(单个)

描述: 开启拉流

语法:

void start(PhoneConfig& config);

参数:

参数名类型是否必填描述
configPhoneConfig是连接云机配置

停止拉流(单个)

描述: 停止拉流

语法:

void stop();

设置视频渲染器(单个)

描述: 设置视频渲染器

语法:

void setVideoSink(VideoRenderSink* sink);

参数:

参数名类型是否必填描述
sinkVideoRenderSink*是视频渲染器

设置云手机事件回调

描述: 设置云手机事件回调

语法:

void setSessionObserver(SessionObserver* observer);

参数:

参数名类型是否必填描述
observerSessionObserver*是事件回调

发送滚轮事件

描述: 发送滚轮事件

语法:

void sendSwipe(int action, int x, int y, int width, int height, int swipe);

参数:

参数名类型是否必填描述
actionint是事件类型
xint是X坐标
yint是Y坐标
widthint是云手机画面宽度
heightint是云手机画面高度
swipeint是滚动距离

发送按键事件(完整 DOWN+UP)

描述: 发送键盘按键事件(完整 DOWN+UP)。推荐用于 Home、返回、菜单等系统键。

语法:

void sendKeyCode(int code);

参数:

参数名类型是否必填描述
codeint是键值(3: HOME, 4: BACK, 82: MENU, 187: TASK)

发送按键事件(单状态)

描述: 发送键盘按键事件(可指定 DOWN 或 UP)。推荐用于需要精确状态控制的按键(如 DELETE)。

语法:

void sendKeyCode(int action, int code);

参数:

参数名类型是否必填描述
actionint是按键类型(0: DOWN, 1: UP)
codeint是键值(3: HOME, 4: BACK, 82: MENU, 187: TASK)

增大音量

描述: 增大云机设备音量

语法:

void volumeUp();

减小音量

描述: 减小云机设备音量

语法:

void volumeDown();

发送鼠标按键事件

描述: 发送鼠标按键事件

语法:

void sendTouchEvent(int action, int x, int y, int width, int height);

参数:

参数名类型是否必填描述
actionint是按键类型(0: DOWN, 1: UP, 2: MOVE)
xint是X轴坐标
yint是Y轴坐标
widthint是云手机画面宽度
heightint是云手机画面高度

修改拉流画质

描述: 设置云手机画面清晰度

语法:

void setVideoLevel(int resolution, int fps, int bitrate);

参数:

参数名类型是否必填描述
resolutionint是分辨率 ID(07: 144×256, 08: 216×384, 09: 288×512, 10: 360×640, 11: 480×848, 12: 540×960, 13: 600×1024, 14: 480×1280, 15: 720×1280, 16: 720×1920, 17: 1080×1920, 18: 1440×1920, 19: 1600×2560, 20: 2880×1080)
fpsint是帧率 ID(1: 20fps, 2: 25fps, 3: 30fps, 4: 60fps, 5: 1fps, 6: 5fps, 7: 10fps, 8: 15fps, 9: 2fps)
bitrateint是码率 ID(01: 1Mbps, 02: 1.5Mbps, 03: 2Mbps, 04: 2.5Mbps, 05: 3Mbps, 06: 3.5Mbps, 07: 4Mbps, 08: 5Mbps, 09: 6Mbps, 10: 8Mbps, 11: 10Mbps, 12: 12Mbps, 13: 200kbps, 14: 400kbps, 15: 600kbps)

截图

描述: 对当前云手机画面进行截图

语法:

void screenshot(bool local);

参数:

参数名类型是否必填描述
localbool否保存位置(true: 本地, false: 云机)

发送输入文本

描述: 发送文本替换云机输入框内容(需输入框获得焦点)

语法:

void sendInputText(const std::string& text);

参数:

参数名类型是否必填描述
textstring是发送的文本内容(UTF-8编码)

开启音频

描述: 音频开启开关

语法:

void enableAudio(bool enable);

参数:

参数名类型是否必填描述
enablebool是true: 开启, false: 停止

开启视频

描述: 视频开启开关

语法:

void enableVideo(bool enable);

参数:

参数名类型是否必填描述
enablebool是true: 开启, false: 停止

开启吹一吹

描述: 吹一吹开启开关

语法:

void enableBlow(bool enable);

参数:

参数名类型是否必填描述
enablebool是true: 开启, false: 停止

摇一摇

描述: 摇一摇

语法:

void shake();

开启摄像头采集

描述: 开启摄像头采集

语法:

void startVideoCapture(int cameraId);

参数:

参数名类型是否必填描述
cameraIdint是摄像头ID

停止采集

描述: 停止摄像头采集

语法:

void stopVideoCapture();

发布视频流

描述: 发布本地摄像头视频流

语法:

void publishStream();

停止发布

描述: 停止发布本地视频流

语法:

void unPublishStream();

发送 ADB 命令

描述: 发送 ADB 命令

语法:

void sendCommand(const std::string& cmd);

参数:

参数名类型是否必填描述
cmdstring是ADB命令
Prev
示例搭建
Next
回调函数