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

目录

  • 初始化参数
  • 接口分类
  • 基础接口
  • 音视频控制
  • 设备控制
  • 输入控制
  • 云手机控制
  • 群控功能
  • 媒体注入

初始化参数

const engine = new ArmcloudEngine(params)

1. 顶层参数

参数名类型必填说明默认值
tokenstring✓服务端身份验证Token-
baseUrlstring✓SDK接口请求域名-
enableMicrophoneboolean✗是否启用麦克风true
enableCameraboolean✗是否启用摄像头true
masterIdPrefixstring✗群控主控设备ID前缀""

2. 设备信息参数

参数名类型必填说明默认值
deviceInfo.padCodestring✓房间号/实例编号,标识云手机实例-
deviceInfo.userIdstring✓用户ID-
deviceInfo.autoRecoveryTimenumber✗无操作回收时间(秒),0表示禁用300
deviceInfo.mediaTypenumber✗媒体流类型(1:音频/2:视频/3:音视频)2
deviceInfo.rotateTypenumber✗屏幕方向(0:竖屏/1:横屏)自动判断
deviceInfo.keyboardstring✗键盘模式("local"/"pad")"pad"
deviceInfo.saveCloudClipboardboolean✗是否启用云机剪切板回调true
deviceInfo.allowLocalIMEInCloudboolean✗云机键盘时能否使用本地输入法false
deviceInfo.disableContextMenuboolean✗是否禁用右键菜单false
deviceInfo.videoDeviceIdstring✗指定摄像头设备ID自动选择
deviceInfo.audioDeviceIdstring✗指定麦克风设备ID自动选择
deviceInfo.disableLocalIMEboolean✗禁用本地键盘false

3. 视频流参数

参数名类型必填说明默认值
deviceInfo.videoStream.resolutionnumber✗视频分辨率12
deviceInfo.videoStream.frameRatenumber✗视频帧率2
deviceInfo.videoStream.bitratenumber✗视频码率3

视频质量预设

质量等级分辨率ID帧率ID码率ID
流畅9815
标清10815
高清1281
超清1513

注意: 详细配置参数请参阅设置分辨率、码率、帧率部分

接口分类

基础接口

  • isSupported - 检测浏览器是否支持RTC服务
  • start - 加入房间
  • stop - 离开房间

音视频控制

  • setStreamConfig - 设置视频参数
  • muted/unmuted - 音频控制
  • increaseVolume/decreaseVolume - 音量控制
  • resumeAllSubscribedStream - 恢复推流
  • pauseAllSubscribedStream - 暂停推流

设备控制

  • setMicrophone - 麦克风控制
  • setCamera - 摄像头控制
  • setVideoDeviceId - 指定摄像头
  • setAudioDeviceId - 指定麦克风
  • setMonitorOperation - 是否开启操作监控

输入控制

  • setKeyboardStyle - 切换输入法类型
  • sendCommand - 发送按键指令
  • sendInputString - 发送文本到输入框
  • sendInputClipper - 发送文本到剪贴板
  • saveCloudClipboard - 控制剪贴板回调
  • triggerClickEvent - 模拟点击
  • triggerPointerEvent - 模拟触摸
  • triggerKeyboardShortcut - 常用快捷键

云手机控制

  • setGPS - 设置GPS位置
  • sendShake - 发送摇一摇指令
  • setAutoRecycleTime/getAutoRecycleTime - 管理回收时间
  • setPhoneRotation - 设置横竖屏
  • executeAdbCommand - 执行ADB命令
  • saveScreenShotToLocal/saveScreenShotToRemote - 截图功能
  • setScreenResolution - 设置和恢复手机分辨率和DPI

群控功能

  • toggleGroupControlSync - 是否停止同步
  • joinGroupRoom - 群控加入房间
  • kickItOutRoom - 踢出群控房间

媒体注入

  • injectVideoStream - 视频注入控制
  • startMediaStream/stopMediaStream - 摄像头/麦克风注入
  • getInjectStreamStatus - 获取注入状态

基础接口

浏览器兼容性检测

### 检测当前浏览器是否支持RTC服务 静态方法
**方法定义**

ArmcloudEngine.isSupported()

**返回值**
`Promise<boolean>` - 返回当前浏览器是否支持RTC服务
**示例代码**
```kotlin
const isSupported = ArmcloudEngine.isSupported();
if (!isSupported) {
  console.warn("当前浏览器不支持RTC服务");
  return false;
}

加入房间

连接云手机,开始远程操控。 方法定义

engine.start(isGroupControl, pads)

参数

参数名类型必填说明默认值
isGroupControlboolean✗是否开启群控模式false
padsstring[]✗需要被群控的实例编号数组[]
示例代码
// 普通模式连接
engine.start(false, []);
// 群控模式连接
engine.start(true, ["ACXXXX", "ACXXXX"]);

离开房间

断开连接,释放资源。 方法定义

engine.stop()

返回值Promise<void> - 返回停止操作的结果 示例代码

try {
  await engine.stop();
  console.log("已断开连接");
} catch (error) {
  console.error("断开连接失败:", error);
}

重要提示: stop() 方法会销毁引擎及创建的DOM节点。如需切换云机,请在每次 new ArmcloudEngine() 之前先调用 stop()。

音视频控制

设置分辨率码率帧率

调整视频流参数以满足不同网络环境和画质需求。 方法定义

engine.setStreamConfig(definitionConfig: {
  definitionId: number; // 分辨率ID
  framerateId: number; // 帧率ID
  bitrateId: number; // 码率ID
},forwardOff: boolean)

参数说明

参数名类型必填说明
definitionConfigObject✓视频流配置对象
definitionConfig.definitionIdnumber✓分辨率ID,控制视频的清晰度
definitionConfig.framerateIdnumber✓帧率ID,控制视频的流畅度
definitionConfig.bitrateIdnumber✓码率ID,控制视频的数据量
forwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 true

分辨率参数值 (definitionId)

ID分辨率适用场景
7144×256极低带宽环境
8216×384低带宽环境
9288×512流畅模式
10360×640标清模式
11480×848增强标清
12540×960高清模式
13600×1024增强高清
14480×1280宽屏模式
15720×1280超清模式
16720×1920宽屏超清
171080×1920全高清
181440×19202K画质
191600×2560超高清
202880×1080超宽视野

帧率参数值 (framerateId)

ID帧率适用场景
120fps标准流畅度
225fps增强流畅度
330fps高流畅度
460fps极致流畅度,适合快速移动场景
51fps最低网络占用,静态场景
65fps低网络占用
710fps基础流畅度
815fps正常流畅度
92fps超低网络占用

码率参数值 (bitrateId)

ID码率适用场景
11Mbps高清模式基础码率
21.5Mbps高清模式增强码率
32Mbps超清模式基础码率
42.5Mbps超清模式增强码率
53Mbps超清模式高级码率
63.5Mbps全高清基础码率
74Mbps全高清标准码率
85Mbps全高清增强码率
96Mbps2K基础码率
108Mbps2K标准码率
1110Mbps2K增强码率
1212Mbps超高清码率
13200kbps极低带宽环境
14400kbps低带宽环境
15600kbps流畅模式基础码率

常用画质预设

使用场景推荐配置
省流量模式{ definitionId: 9, framerateId: 8, bitrateId: 15 }
均衡模式{ definitionId: 10, framerateId: 8, bitrateId: 15 }
高清模式{ definitionId: 12, framerateId: 8, bitrateId: 1 }
超清模式{ definitionId: 15, framerateId: 1, bitrateId: 3 }
2K画质{ definitionId: 18, framerateId: 3, bitrateId: 10 }

示例代码

// 设置高清模式
engine.setStreamConfig({
  definitionId: 12, // 540×960
  framerateId: 2, // 25fps
  bitrateId: 3 // 2Mbps
});
// 设置流畅模式(低带宽环境)
engine.setStreamConfig({
  definitionId: 9, // 288×512
  framerateId: 8, // 15fps
  bitrateId: 15 // 600kbps
});
// 设置超清模式(高带宽环境)
engine.setStreamConfig({
  definitionId: 15, // 720×1280
  framerateId: 3, // 30fps
  bitrateId: 5 // 3Mbps
});

恢复推流

恢复音视频流传输。 方法定义

engine.resumeAllSubscribedStream(mediaType)

参数

参数名类型必填说明
mediaTypenumber✓媒体类型:1(音频), 2(视频), 3(音视频)

示例代码

// 恢复音视频流
engine.resumeAllSubscribedStream(3);
// 只恢复音频
engine.resumeAllSubscribedStream(1);
// 只恢复视频
engine.resumeAllSubscribedStream(2);

暂停推流

暂停音视频流传输,节省带宽。 方法定义

engine.pauseAllSubscribedStream(mediaType)

参数

参数名类型必填说明
mediaTypenumber✓媒体类型:1(音频), 2(视频), 3(音视频)

示例代码

// 暂停音视频流
engine.pauseAllSubscribedStream(3);
// 只暂停音频
engine.pauseAllSubscribedStream(1);
// 只暂停视频流
engine.pauseAllSubscribedStream(2);

静音与取消静音

控制云手机的音频输出。 方法定义

// 开启静音
engine.muted()
// 关闭静音
engine.unmuted()

返回值 无 示例代码

// 开启静音
engine.muted();
// 关闭静音
engine.unmuted();

音量控制

调整云手机的音量大小。 方法定义

// 增加音量
engine.increaseVolume()
// 减小音量
engine.decreaseVolume()

返回值 无 示例代码

// 调高音量
engine.increaseVolume();
// 调低音量
engine.decreaseVolume();

设备控制

麦克风控制

控制本地麦克风是否向云手机传输音频。 方法定义

engine.setMicrophone(enable)

参数

参数名类型必填说明
enableboolean✓true表示启用麦克风,false表示禁用麦克风

示例代码

// 启用麦克风
engine.setMicrophone(true);
// 禁用麦克风
engine.setMicrophone(false);

摄像头控制

控制本地摄像头是否向云手机传输视频。 方法定义

engine.setCamera(enable)

参数

参数名类型必填说明
enableboolean✓true表示启用摄像头,false表示禁用摄像头

示例代码

// 启用摄像头
engine.setCamera(true);
// 禁用摄像头
engine.setCamera(false);

指定设备

指定使用的摄像头或麦克风设备。 方法定义

// 指定摄像头
engine.setVideoDeviceId(deviceId)
// 指定麦克风
engine.setAudioDeviceId(deviceId)

参数

参数名类型必填说明
deviceIdstring✓设备ID,空字符串表示自动选择设备

示例代码

// 指定摄像头
engine.setVideoDeviceId('ab484e060c5f1186004457c5be97e874e976983ebf66e1227e4e925523fc4f11');
// 指定麦克风
engine.setAudioDeviceId('ab484e060c5f1186004457c5be97e874e976983ebf66e1227e4e925523fc4f11');
// 自动选择设备
engine.setVideoDeviceId('');
engine.setAudioDeviceId('');

是否开启操作监控

是否开启操作监控。 方法定义

engine.setMonitorOperation(enable:boolean, forwardOff:boolean)

参数

参数名类型必填说明
enableboolean✓true表示启用操作监控,false表示禁用操作监控
forwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 true

示例代码

// 启用操作监控
engine.setMonitorOperation(true);
// 禁用操作监控
engine.setMonitorOperation(false);

输入控制

键盘输入控制

切换输入法类型。 方法定义

engine.setKeyboardStyle(keyboard)

参数

参数名类型必填说明
keyboardstring✓键盘模式:"local"(本地输入法), "pad"(云机虚拟输入法)

示例代码

// 使用本地输入法
engine.setKeyboardStyle('local');
// 使用云机虚拟输入法
engine.setKeyboardStyle('pad');

按键控制

发送系统按键指令。 方法定义

engine.sendCommand(command:string, forwardOff: boolean)

参数

参数名类型必填说明
commandstring✓按键命令:"back"(返回键), "home"(Home键), "menu"(菜单键),其它参考 android.view.KeyEvent 官方文档
forwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 false

示例代码

// 发送返回键
engine.sendCommand("back");
// 发送Home键
engine.sendCommand("home");
// 发送菜单键
engine.sendCommand("menu");
// 发送回车
engine.sendCommand("66");

文本输入

将文本发送到云手机的输入框。 方法定义

engine.sendInputString(text, forwardOff)

参数

参数名类型必填说明
textstring✓要输入的文本内容
forwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 false

示例代码

// 在聚焦的输入框中输入文本
engine.sendInputString('hello world');

注意: 此操作仅将文本发送至输入框,不会更新云机剪切板内容。

剪贴板控制

管理云手机剪贴板内容。 方法定义

// 发送文本到云手机剪贴板
engine.sendInputClipper(text, forwardOff)
// 控制是否接收云机剪贴板内容回调
engine.saveCloudClipboard(flag)

参数

方法参数名类型必填说明
sendInputClippertextstring✓要发送到剪贴板的文本内容
sendInputClipperforwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 false
saveCloudClipboardflagboolean✓true表示接收剪贴板回调,false表示不接收

示例代码

// 发送文本到云机剪贴板,需要在云机输入框长按粘贴才能使用
engine.sendInputClipper('hello world');
// 开启云机剪贴板内容回调
engine.saveCloudClipboard(true);
// 关闭云机剪贴板内容回调
engine.saveCloudClipboard(false);

触控模拟

模拟触摸和点击事件。 方法定义

// 模拟点击
engine.triggerClickEvent(options: {
  x: number; // 点击的x坐标
  y: number; // 点击的y坐标
  width: number; // 容器宽度
  height: number; // 容器高度
})
// 模拟触摸
engine.triggerPointerEvent(
  action: number, // 触摸动作类型
  options: {
    x: number; // 触摸的x坐标
    y: number; // 触摸的y坐标
    width: number; // 容器宽度
    height: number; // 容器高度
  }
)

参数说明

方法参数名类型必填说明
triggerClickEventoptionsObject✓点击事件配置对象
triggerClickEventoptions.xnumber✓点击的横坐标位置
triggerClickEventoptions.ynumber✓点击的纵坐标位置
triggerClickEventoptions.widthnumber✓视频容器的宽度
triggerClickEventoptions.heightnumber✓视频容器的高度
triggerPointerEventactionnumber✓触摸动作类型:0(按下), 1(抬起), 2(移动中)
triggerPointerEventoptionsObject✓触摸事件配置对象
triggerPointerEventoptions.xnumber✓触摸的横坐标位置
triggerPointerEventoptions.ynumber✓触摸的纵坐标位置
triggerPointerEventoptions.widthnumber✓视频容器的宽度
triggerPointerEventoptions.heightnumber✓视频容器的高度

坐标计算说明: 坐标值(x,y)是相对于视频容器的位置,计算公式为:

  • 实际X坐标 = x / width * 实际视频宽度
  • 实际Y坐标 = y / height * 实际视频高度

示例代码

// 模拟单击
engine.triggerClickEvent({
  x: 430, // 点击位置的X坐标
  y: 1383, // 点击位置的Y坐标
  width: 871, // 容器宽度
  height: 1550 // 容器高度
});
// 模拟滑动操作
// 1. 按下
engine.triggerPointerEvent(0, {
  x: 92, // 起始位置X坐标
  y: 1325, // 起始位置Y坐标
  width: 871, // 容器宽度
  height: 1550 // 容器高度
});
// 2. 移动过程
engine.triggerPointerEvent(2, {
  x: 92, // 中间位置X坐标(横向不变)
  y: 1326, // 中间位置Y坐标(微小变化)
  width: 871, // 容器宽度
  height: 1550 // 容器高度
});
// 3. 抬起
setTimeout(() => {
  engine.triggerPointerEvent(1, {
    x: 92, // 结束位置X坐标
    y: 1330, // 结束位置Y坐标(纵向已移动)
    width: 871, // 容器宽度
    height: 1550 // 容器高度
  });
}, 1);
// 模拟长按操作
// 1. 按下
engine.triggerPointerEvent(0, {
  x: 300,
  y: 500,
  width: 871,
  height: 1550
});
// 2. 延迟后抬起(模拟长按效果)
setTimeout(() => {
  engine.triggerPointerEvent(1, {
    x: 300,
    y: 500,
    width: 871,
    height: 1550
  });
}, 800); // 长按800毫秒

常用快捷键

通过keyCode模拟云机内快捷键。 方法定义

engine.triggerKeyboardShortcut(metaState, keyCode)

参数说明

参数名类型必填说明
metaStatenumber✓修饰键状态,可参考 android.view.KeyEvent 官方文档
keyCodenumber✓实际按下的键,可参考 android.view.KeyEvent 官方文档

示例代码

// 选中云机文本框内容 = ctrl + a
engine.triggerKeyboardShortcut(8192, 29)
// 复制选中的文本框内容 = ctrl + c 复制后会触发剪切板回调
engine.triggerKeyboardShortcut(8192,31)

云手机控制

位置模拟

设置云手机的GPS位置信息。 方法定义

engine.setGPS(longitude, latitude)

参数

参数名类型必填说明
longitudenumber✓经度值
latitudenumber✓纬度值

示例代码

// 设置经度113,纬度28
engine.setGPS(113, 28);

设备控制

发送设备特定指令。 方法定义

engine.sendShake(time)

参数

参数名类型必填说明默认值
timenumber✗摇一摇持续时间(毫秒)1500

示例代码

// 默认持续1.5秒
engine.sendShake();
// 持续2秒
engine.sendShake(2000);

注意: 时间过长可能导致多次截屏。

回收控制

管理云手机的无操作自动回收时间。 方法定义

// 设置回收时间
engine.setAutoRecycleTime(second)
// 获取回收时间
engine.getAutoRecycleTime()

参数

方法参数名类型必填说明
setAutoRecycleTimesecondnumber✓自动回收时间(秒),0~7200,0表示禁用自动回收

返回值

方法返回类型说明
getAutoRecycleTimePromise<number>当前设置的自动回收时间(秒)

示例代码

// 设置5分钟无操作回收
engine.setAutoRecycleTime(300);
// 禁用自动回收
engine.setAutoRecycleTime(0);
// 获取当前回收时间
engine.getAutoRecycleTime().then(time => {
  console.log(`当前无操作回收时间: ${time}秒`);
});

屏幕方向

设置云手机的屏幕方向。 方法定义

engine.setPhoneRotation(type)

参数

参数名类型必填说明
typenumber✓屏幕方向:0(竖屏), 1(横屏)

示例代码

// 设置竖屏
engine.setPhoneRotation(0);
// 设置横屏
engine.setPhoneRotation(1);

高级控制

执行ADB命令。 方法定义

engine.executeAdbCommand(command, forwardOff)

参数

参数名类型必填说明
commandstring✓要执行的ADB命令
forwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 true

示例代码

// 列出根目录文件
engine.executeAdbCommand('cd /;ls');

截图功能

捕获云手机屏幕截图。 方法定义

// 截图保存到本地
engine.saveScreenShotToLocal()
// 截图保存到云机
engine.saveScreenShotToRemote()

返回值

方法返回类型说明
saveScreenShotToLocalPromise<ImageData>截图的图像数据
saveScreenShotToRemotevoid无返回值

示例代码

// 截图保存到本地
engine.saveScreenShotToLocal().then(imageData => {
  // 创建canvas元素
  const canvas = document.createElement("canvas");
  canvas.width = imageData.width;
  canvas.height = imageData.height;
  const ctx = canvas.getContext("2d");
 
  // 将图像数据绘制到canvas上
  ctx.putImageData(imageData, 0, 0);
 
  // 保存图片
  const link = document.createElement("a");
  link.href = canvas.toDataURL();
  link.download = "screenshot.png";
  link.click();
});
// 截图保存到云机相册
engine.saveScreenShotToRemote();

屏幕分辨率和DPI

修改和还原屏幕分辨率和DPI 方法定义

engine.setScreenResolution(options, forwardOff)

参数

参数名类型必填说明
options.widthnumber✗宽度
options.heightnumber✗高度
options.dpinumber✗DPI
options.typestring✓类型: 1. updateDensity(更新分辨率和DPI) 2. resetDensity(恢复默认分辨率和DPI,此类型的情况下options的其它参数无效)
forwardOffboolean✗是否关闭转发到群控房间,开启群控才生效,默认 true

示例代码

// 修改分辨率和DPI
engine.setScreenResolution({
  width: 720,
  height: 1280,
  dpi: 360,
  type: 'updateDensity'
});
// 恢复默认分辨率和DPI
engine.setScreenResolution({
  type: 'resetDensity'
});

群控功能

管理多台云手机的群控操作。

是否停止同步

方法定义

engine.toggleGroupControlSync(flag)

参数

参数名类型必填说明
flagboolean✓是否停止同步

示例代码

// 开启同步
engine.toggleGroupControlSync(true)
// 停止同步
engine.toggleGroupControlSync(false)

群控加入房间

方法定义

engine.joinGroupRoom(pads)

参数

参数名类型必填说明
padsstring[]✓需要被群控的实例编号数组

示例代码

// 加入多个实例到群控房间
engine.joinGroupRoom(['ACXXXX', 'ACXXXX']);

踢出群控房间

方法定义

engine.kickItOutRoom(pads)

参数

参数名类型必填说明
padsstring[]✓需要踢出群控的实例编号数组

示例代码

// 踢出指定实例
engine.kickItOutRoom(['ACXXXX']);

媒体注入

视频注入

将视频注入到云手机相机。 方法定义

engine.injectVideoStream(
  type: "startVideoInjection" | "stopVideoInjection",
  options?: {
    fileUrl: string; // 视频文件路径
    isLoop?: boolean; // 是否循环播放
    fileName?: string; // 视频文件名称
  }
)

参数说明

参数名类型必填说明默认值
typestring✓操作类型:"startVideoInjection"(开始注入), "stopVideoInjection"(停止注入)-
optionsObjecttype为"startVideoInjection"时必填注入配置项-
options.fileUrlstring✓视频文件路径,支持云手机内部路径或外部URL地址-
options.isLoopboolean✗是否循环播放视频true
options.fileNamestringfileUrl为URL时必填视频文件名称-

技术要求

项目要求
支持的视频格式H.264、H.265编码
视频分辨率宽高需为2的倍数

示例代码

// 从URL注入视频
engine.injectVideoStream('startVideoInjection', {
  fileUrl: 'http://example.com/video.mp4',
  isLoop: true,
  fileName: 'video.mp4' // URL地址时必填
});
// 从云手机内部存储注入视频
engine.injectVideoStream('startVideoInjection', {
  fileUrl: '/sdcard/Downloads/video.mp4',
  isLoop: true
});
// 从云手机内部存储注入视频(单次播放)
engine.injectVideoStream('startVideoInjection', {
  fileUrl: '/sdcard/Downloads/video.mp4',
  isLoop: false
});
// 停止视频注入
engine.injectVideoStream('stopVideoInjection');

摄像头麦克风注入

将本地摄像头和麦克风注入到云手机。 方法定义

// 启动注入
engine.startMediaStream(mediaType)
// 停止注入
engine.stopMediaStream(mediaType)

参数

参数名类型必填说明
mediaTypenumber✓媒体类型:1(麦克风), 2(摄像头), 3(摄像头和麦克风)

示例代码

// 启动摄像头和麦克风注入
engine.startMediaStream(3);
// 只启动麦克风注入
engine.startMediaStream(1);
// 只启动摄像头注入
engine.startMediaStream(2);
// 停止摄像头注入
engine.stopMediaStream(2);
// 停止麦克风注入
engine.stopMediaStream(1);
// 停止所有注入
engine.stopMediaStream(3);

注入状态查询

获取媒体注入状态。 方法定义

engine.getInjectStreamStatus(type, timeout)

参数

参数名类型必填说明默认值
typestring✓查询类型:"video"(视频注入), "camera"(摄像头), "audio"(麦克风)-
timeoutnumber✗超时时间(毫秒),0表示不设置超时0

返回值 返回一个Promise,解析为包含以下属性的对象:

属性名类型说明
typestring注入类型:"video", "camera", "audio"
statusstring注入状态:"live"(推流中), "offline"(未推流), "unknown"(未知), "timeout"(超时)
pathstring推流路径,仅type为"video"时存在

示例代码

// 查询视频注入状态
engine.getInjectStreamStatus("video").then(res => {
  console.log(`类型: ${res.type}`); // 注入类型
  console.log(`状态: ${res.status}`); // 注入状态
  if (res.path) {
    console.log(`路径: ${res.path}`); // 仅视频注入时有此字段
  }
});
// 查询摄像头注入状态,5秒超时
engine.getInjectStreamStatus("camera", 5000).then(res => {
  console.log(`类型: ${res.type}`); // 注入类型
  console.log(`状态: ${res.status}`); // 注入状态
});
Prev
示例搭建
Next
H5 SDK 回调函数