HarmonyOS API

最近更新时间:2025-09-22 16:42:11

我的收藏

API 描述

本文档为 HarmonyOS 平台 API, 适用于华为鸿蒙系统 HarmonyOS 5.0.0 (12) 及以上版本,使用时请先在项目中配置引用 SDK 包。

SDK 引用及依赖配置

1. 将 HAR 文件复制到工程目录下。
2. 在需要引入三方包的模块的 oh-package.json5 中设置本地 HAR 包。
"dependencies": {
  "linkboostsdk": "file:path/to/linkboostsdk.har" // 此处也可以是以当前   oh-package.json5所在目录为起点的相对路径。
}        
3. 依赖设置完成后,需要执行 ohpm install 命令安装依赖包。

API 概览

TrroRemote

SDK 功能主入口:
API
描述
获取 TrroControl 单例。
注册 SDK 事件监听。
使用配置参数启动 SDK。
使用 JSON 配置启动 SDK。
connect
连接现场设备视频流。
getGwList
获取在线现场设备列表。
getGwInfo
获取对应网关的版本。
关闭指定视频连接。
关闭所有视频连接。
给现场设备发送控制数据。
audioMute
现场设备音频设置。
向网关发出权限请求。
更新现场设备目标视频流编码参数。
用于观看身份验证。
destroy
释放 SDK 资源。
获取 SDK 版本号。

getInstance

获取 TrroRemote 单例。
public static getInstance(): TrroRemote

setListener

注册 SDK 事件监听,可获取网关连接状态、媒体信息等。
public abstract setListener(listener: TrroRemoteListener): void
参数
描述
listener
监听器实例。

initWithOptions

使用配置参数启动 SDK,接口为同步阻塞模式,等待信令连接成功后返回。
返回值:成功 1 失败 <= 0
public abstract initWithOptions(context: Context, trroOptions: TrroOptions): number
参数
描述
context
ApplicationContext
trroOptions
配置选项,选项说明参考TrroOptions

initWithJson

使用 JSON 配置启动 SDK,接口为同步阻塞模式,等待信令连接成功后返回。
返回值:成功 1 失败 <= 0
public abstract initWithJson(context: Context, jsonStr: string): number
参数
描述
context
ApplicationContext
jsonStr
JSON 格式说明参考远端设备配置说明

connect

发起单路视频连接,可多次调用连接不同流,异步模式,根据 onState 状态回调确认视频连接成功,连接多路视频流也可以用下面多路视频流连接接口。
public abstract connect(gwid: string, connectParam: TrroConnectParam): void
参数
描述
gwid
目标连接的现场设备 ID,需添加 projectid 前缀:
格式:projectid/gwid
示例:ebesyladhdhs8txj/cam_logitech
connectParam
连接参数配置,见下文 TrroConnectParam 说明。

connect

发起多路视频连接,异步模式,根据 onState 状态回调确认视频连接成功。
public abstract connectList(gwid: string, connectParamList: ArrayList<TrroConnectParam>): void
参数
描述
gwid
目标连接的现场设备 ID,需添加 projectid 前缀:
格式:projectid/gwid
示例:ebesyladhdhs8txj/cam_logitech
connectParamList
连接参数列表,配置每一路视频参数。

getGwList

返回值:在线设备列表信息对象。
获取在线现场设备的设备列表,接口为同步阻塞模式。
public abstract getGwList(): GateWayList

getGwInfo

获取网关详细信息,接口为同步阻塞模式。
返回值:网关详细信息对象。
public abstract getGwInfo(gwid: string): GwInfo
参数
描述
gwid
目标连接的现场设备 ID。

disconnect

关闭指定视频连接。
返回值:成功 1 失败 <= 0
public abstract disconnect(connFd: number): number
参数
描述
connFd
要关闭视频连接对应的连接 Fd。

disconnectAll

关闭所有视频连接。
返回值:成功 1 失败 <= 0
public abstract disconnectAll(): number

sendControlData

给现场设备发送控制数据。
返回值:成功 1 失败 <= 0
public abstract sendControlData(gwid: string, msg: ArrayBuffer, qos: number): number
参数
描述
gwid
目标连接的现场设备 ID。
msg
消息内容。
qos
消息传输 QoS。
0:不可靠传输。
1:可靠传输。

audioMute

现场设备音频设置。
返回值:成功 1 失败 <= 0
public audioMute(gwid: string, mute: boolean): number
参数
描述
gwid
目标连接的现场设备 ID。
mute
true:静音
false:取消静音。

requestPermission

向网关发出权限请求。
返回值:成功 1 失败 <= 0
 public abstract requestPermission(gwid: string, permission: number): number
参数
描述
gwid
目标连接的现场设备 ID。
permission
0 guest,只有观看权。
1 master, 完全控制权限。

fieldDeviceEncodeConfig

更新现场设备目标视频流编码参数。
返回值:成功 1 失败 <= 0
public abstract fieldDeviceEncodeConfig(gwid: string, streamId: number, encodeConfig: string): number
参数
描述
gwid
目标连接的现场设备 ID。
streamId
目标视频流编号。
encodeConfig
待更新的编码参数 ,JSON 格式字符串,缺省字段将保持当前值不进行更新,下面是更新支持的编码参数示意:
 {
       "fps": 30,
       "encode_width": 1920,
       "encode_height": 1080,
       "bps": 3000,
       "min_fps": 30,
       "min_bps": 1800,
       "force_min": 0,
       "min_width": 1920
  }

setSessionPermissionToken

 白名单模式下,针对未注册设备观看,用于观看身份验证。
返回值:成功 1 失败 <= 0
public abstract setSessionPermissionToken(gwid: string, signature: string): number;
参数
描述
gwid
目标连接的现场设备 ID。
signature
基于项目密钥签发的临时授权签名。

diagRequest

需要主动触发,诊断网关、控制端当前状态输出报告。
返回值:成功 1 失败 <= 0
public abstract diagRequest(gwid: string): number
参数
描述
gwid
目标连接的现场设备 ID。

destroy

释放 SDK 资源,在程序退出时可以主动释放 SDK 资源。
public abstract destroy(): void

getSDKVersion

获取 SDK 版本号信息。
返回值:SDK 字符串版本号。
public static getSDKVersion(): string

TrroOptions

配置初始化参数,字段说明参考:远端设备配置说明

TrroConnectParam

视频流连接配置参数。
属性
描述
streamId
现场设备视频流的 ID 数组, 现场设备视频流 ID 从0开始, 最大值为现场设备支持的 device_streams 数量 -1
connFd
接收视频流的句柄标识,自行编号,取值从0开始。
videoView
用于视频流显示的控件。
nightVisionEnabled
设置是否开启夜视模式。

TrroRemoteListener

SDK 事件监听接口。
API
描述
onState
视频流连接状态回调。
onAllLatencyCallback
时延回调。
onReportData
接收来自现场设备信息回调。
onRemoteFrameData
视频帧回调。
onRemoteEncodedFrame
编码帧回调。
onError
错误信息回调。
onOperationPermissionState
回调现场设备操控权限状态通知。
onSignalState
信令连接状态回调。
onRemoteMixAudioFrame
远端设备音频数据回调。
onDiagReport
诊断信息回调。

onState

视频流连接状态回调。
onAllLatencyCallback: (gwid: string, connFd: number, latency1: number, latency2: number, videotime: number,
rcct: number) => void
参数
描述
gwid
现场设备 ID。
streamId
现场设备流 ID。
connFd
连接 Fd。
state
0:未连接,1:连接中,2:已连接,3:正在断开连接。

onAllLatencyCallback

时延回调。
onAllLatencyCallback: (gwid: string, connFd: number, latency1: number, latency2: number, videotime: number,
rcct: number) => void
参数
描述
gwid
现场设备 ID。
connFd
连接 Fd。
latency1
返回视频传输时延 ms。
latency2
返回视频 + 控制回环时延 ms。
videotime
当前视频帧的现场设备采集时间戳。
rcct
控制信道往返时延 ms。

onReportData

接收来自现场设备信息回调。
onReportData: (gwid: string, msg: ArrayBuffer, qos: number) => void
参数
描述
gwid
现场设备 ID。
msg
消息内容。
qos
消息来源传输 qos。 
0:不可靠传输。
1:可靠传输。

onRemoteFrameData

视频帧回调。
onRemoteFrameData: (gwid: string, streamId: number, connFd: number, data: ArrayBuffer, width: number, height: number,
videoTime: number) => void
参数
描述
gwid
现场设备 ID。
streamId
现场设备流 ID。
connFd
连接 Fd。
data
视频帧数据。
width
视频帧宽。
height
视频帧高。
videoTime
当前视频帧的现场设备采集时间戳。

onRemoteMixAudioFrame

远端设备音频数据回调。
onRemoteMixAudioFrame: (data: ArrayBuffer, length: number, channel: number, sampleRate: number) => void
属性
描述
data
音频 PCM 数据 10ms 16bits。
length
数据长度。
channel
音频声道数目,例如单声道为1,双声道为2。
sampleRate
音频采样率。

onError

错误信息回调。
onError: (errorCode: number, errorMsg: string) => void;
参数
描述
errorCode
错误码。
errorMsg
错误信息描述。

onOperationPermissionState

回调现场设备操控权限状态通知。
onOperationPermissionState: (fieldDevId: string, selfPermission: number, masterDevId: string) => void
参数
描述
fieldDevId
来源现场设备 ID。
selfPermission
本设备当前的操控权限,0 是guest,只有观看权限, 1是master,拥有完全控制权限。更多信息参见 控制授权管理
masterDevId
拥有 master 权限的远端设备 ID。

onSignalState

信令连接状态回调。
onSignalState: (signalState: number) => void
参数
描述
signalState
信令连接状态。
0 连接建立成功。
1 连接断开,内部会进行自动重连。
2 自动重连成功。
3 被踢下线。
4 用户名或者密码错误。

onDiagReport

诊断信息回调。
onDiagReport: (gwid: string, type: number, json: string) => void;
属性
描述
gwid
网关 ID。
type
0:上行,1:下行。
json
上行: 上行数据包的 JSON 格式描述。
下行: 下行数据包的 JSON 格式描述。

GateWayList

现场设备列表。
属性
描述
ret
0:获取成功。
msg
获取结果描述。
count
在线设备总数。
gateways
数组,在线设备列表。

GateWay

现场设备。
属性
描述
name
设备名称。
type
设备类型。
status
设备状态。
streams
视频流数量。
timestamp
时间戳。
version
设备版本。

TXCloudVideoView

视频流显示控件。
API
描述
setFillMode
设置视频画面填充模式。

setFillMode

设置视频画面填充模式
参数
描述
fillMode
0:填充(画面可能会被拉伸裁剪)。
1:适应(显示完整画面,可能会有黑边)。
默认值:0

示例代码

SDK 初始化

//初始化配置,详细参数说明参考:https://cloud.tencent.com/document/product/1584/89794
let trroOptions = new TrroOptions();
trroOptions.device_id = "****"
trroOptions.projectid = "****"
 
//日志级别,0:关闭,1,输出部分运行日志,2:输出详细运行日志
trroOptions.log_enable = 2;
trroOptions.device_name = "****";
trroOptions.password = "****";
trroOptions.cloud_mode = "public"
trroOptions.sdk_mode = "server2"
 
//初始化TRRO SDK
let ret = this.trroRemote.initWithOptions(this.context, trroOptions);

连接视频流

在index文件中,配置视频流显示控制 tXCloudVideoView
XComponent({
    id: 'myXComponent',
    type: XComponentType.SURFACE,
    controller: this.tXCloudVideoView
})
连接设备视频流
//第1路视频连接信息配置               
let trroConnectParam = new TrroConnectParam();
//现场设备视频流的ID数组, 现场设备视频流ID从0开始
trroConnectParam.streamId = 0
 //connFd,分配一个唯一ID,建议从0开始
trroConnectParam.connFd = 0
trroConnectParam.videoView = this.tXCloudVideoView as TXCloudVideoView;
               
//第2路视频连接信息配置               
let trroConnectParam2 = new TrroConnectParam();
//现场设备视频流的ID数组, 现场设备视频流ID从0开始
trroConnectParam2.streamId = 1
 //connFd,分配一个唯一ID,建议从0开始
trroConnectParam2.connFd = 1
trroConnectParam2.videoView = this.tXCloudVideoView2 as TXCloudVideoView;
 
let trroConnectParamList = new ArrayList<TrroConnectParam>();
trroConnectParamList.add(trroConnectParam);
trroConnectParamList.add(trroConnectParam2);
//调用connect方法连接现场设备视频流           
TrroRemote.getInstance().connectList(gwId, trroConnectParamList)      

事件回调监听

//生命周期函数中设置监听器,比如在aboutToAppear方法设置监听
TrroRemote.getInstance().setListener(this);

资源释放

//在退出时释放资源,比如在aboutToDisappear方法中调用
TrroRemote.getInstance().destroy()