Constructor
new TRTCCloud()
Example
// 创建/使用/销毁 TRTCCloud 对象的示例代码:
import TRTCCloud from 'trtc-electron-sdk';
this.rtcCloud = new TRTCCloud();
// 获取 SDK 版本号
let version = this.rtcCloud.getSDKVersion();
Methods
(static) getTRTCShareInstance() → {TRTCCloud}
创建 TRTCCloud 对象单例
Returns:
- Type
- TRTCCloud
(static) destroyTRTCShareInstance()
释放 TRTCCloud 对象并清理资源
getConfigObject()
获取配置对象, 可用来打开 debug 模式
destroy()
清理资源
enterRoom(params, scene)
1.1 进入房间
调用接口后,您会收到来自 TRTCCallback 中的 onEnterRoom(result)
回调:
- 如果加入成功,result 会是一个正数(result > 0),表示加入房间的时间消耗,单位是毫秒(ms)。
- 如果加入失败,result 会是一个负数(result < 0),表示进房失败的错误码。
进房失败的错误码含义请参见错误码。
参数 scene 的枚举值如下:
TRTCAppSceneVideoCall
:
视频通话场景,支持720P、1080P高清画质,单个房间最多支持300人同时在线,最高支持50人同时发言。
适合:[1对1视频通话]、[300人视频会议]、[在线问诊]、[视频聊天]、[远程面试]等。TRTCAppSceneAudioCall
:
语音通话场景,支持 48kHz,支持双声道。单个房间最多支持300人同时在线,最高支持50人同时发言。
适合:[1对1语音通话]、[300人语音会议]、[语音聊天]、[语音会议]、[在线狼人杀]等。TRTCAppSceneLIVE
:
视频互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。
适合:[视频低延时直播]、[十万人互动课堂]、[视频直播 PK]、[视频相亲房]、[互动课堂]、[远程培训]、[超大型会议]等。TRTCAppSceneVoiceChatRoom
:
语音互动直播,支持平滑上下麦,切换过程无需等待,主播延时小于300ms;支持十万级别观众同时播放,播放延时低至1000ms。
适合:[语音低延时直播]、[语音直播连麦]、[语聊房]、[K 歌房]、[FM 电台]等。
注意:
- 当 scene 选择为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom 时,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。
- 不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。
Parameters:
Name | Type | Description | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
TRTCParams |
进房参数 Properties
|
|||||||||||||||||||||||||||||||||
scene |
TRTCAppScene |
应用场景,目前支持视频通话(VideoCall)、在线直播(Live)、语音通话(AudioCall)、语音聊天室(VoiceChatRoom)四种场景。 |
exitRoom()
1.2 退出房间
调用 exitRoom() 接口会执行退出房间的相关逻辑,例如释放音视频设备资源和编解码器资源。 待资源释放完毕,SDK 会通过 TRTCCallback 中的 onExitRoom() 回调通知您。
如果您要再次调用 enterRoom() 或者切换到其它的音视频 SDK,请等待 onExitRoom() 回调到来后再执行相关操作, 否则可能会遇到如摄像头、麦克风设备被强占等各种异常问题。
switchRoom(params)
1.3 切换房间
调用该接口后,用户会先退出原来的房间并快速进入 TRTCSwitchRoomParam 中指定的新房间: 相比于直接调用 exitRoom + enterRoom 的方式,switchRoom 接口对主播更加友好,因为 switchRoom 不会停止主播端视频的采集和预览。
Parameters:
Name | Type | Description |
---|---|---|
params |
TRTCSwitchRoomParam |
房间切换参数,请参考 接口调用结果会通过 TRTCCloudListener 中的 onSwitchRoom(errCode, errMsg) 回调通知给您。 |
switchRole(role)
1.4 切换角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom)
在直播场景下,一个用户可能需要在“观众”和“主播”之间来回切换。 您可以在进房前通过 TRTCParams 中的 role 字段确定角色,也可以通过 switchRole 在进房后切换角色。
Parameters:
Name | Type | Description |
---|---|---|
role |
TRTCRoleType |
目标角色,默认为主播
|
connectOtherRoom(params)
1.5 请求跨房连麦(主播跨房 PK)
TRTC 中两个不同音视频房间中的主播,可以通过“跨房连麦”功能拉通连麦通话功能。使用此功能时, 两个主播无需退出各自原来的直播间即可进行“连麦 PK”。
例如:当房间“001”中的主播 A 通过 connectOtherRoom() 跟房间“002”中的主播 B 拉通跨房连麦后, 房间“001”中的用户都会收到主播 B 的 onUserEnter(B) 回调和 onUserVideoAvailable(B,true) 回调。 房间“002”中的用户都会收到主播 A 的 onUserEnter(A) 回调和 onUserVideoAvailable(A,true) 回调。
简言之,跨房连麦的本质,就是把两个不同房间中的主播相互分享,让每个房间里的观众都能看到两个主播。
房间 001 房间 002 ------------- ------------ 跨房连麦前:| 主播 A | | 主播 B | | 观众 U V W | | 观众 X Y Z | ------------- ------------ 房间 001 房间 002 ------------- ------------ 跨房连麦后:| 主播 A B | | 主播 B A | | 观众 U V W | | 观众 X Y Z | ------------- ------------
考虑到后续扩展字段的兼容性问题,跨房连麦的参数暂时采用了 JSON 格式的字符串,要求至少包含两个字段:
- roomId:房间“001”中的主播 A 要跟房间“002”中的主播 B 连麦,主播 A 调用 connectOtherRoom() 时 roomId 应指定为“002”。
- userId:房间“001”中的主播 A 要跟房间“002”中的主播 B 连麦,主播 A 调用 connectOtherRoom() 时 userId 应指定为 B 的 userId。
跨房连麦的请求结果会通过 TRTCCallback 中的 onConnectOtherRoom 回调通知给您。
Example
let json = JSON.stringify({roomId: 2, userId: "userB"});
rtcCloud.connectOtherRoom(json);
Parameters:
Name | Type | Description |
---|---|---|
params |
String |
JSON 字符串连麦参数,roomId 代表目标房间号,userId 代表目标用户 ID。 |
disconnectOtherRoom()
1.6 关闭跨房连麦(主播跨房 PK)
跨房连麦的退出结果会通过 TRTCCallback 中的 onDisconnectOtherRoom 回调通知给您。
setDefaultStreamRecvMode(autoRecvAudio, autoRecvVideo)
1.7 设置音视频数据接收模式(需要在进房前设置才能生效)
为实现进房秒开的绝佳体验,SDK 默认进房后自动接收音视频。即在您进房成功的同时,您将立刻收到远端所有用户的音视频数据。 若您没有调用 startRemoteView,视频数据将自动超时取消。 若您主要用于语音聊天等没有自动接收视频数据需求的场景,您可以根据实际需求选择接收模式。
注意:需要在进房前设置才能生效。
Parameters:
Name | Type | Description |
---|---|---|
autoRecvAudio |
Boolean |
true:自动接收音频数据;false:需要调用 |
autoRecvVideo |
Boolean |
true:自动接收视频数据;false:需要调用 |
startPublishing(streamId, type)
2.1 开始向腾讯云的直播 CDN 推流
该接口会指定当前用户的音视频流在腾讯云 CDN 所对应的 StreamId,进而可以指定当前用户的 CDN 播放地址。
例如:如果我们采用如下代码设置当前用户的主画面 StreamId 为 user_stream_001,那么该用户主画面对应的 CDN 播放地址为: “http://yourdomain/live/user_stream_001.flv”,其中 yourdomain 为您自己备案的播放域名, 您可以在直播控制台 配置您的播放域名,腾讯云不提供默认的播放域名。
您也可以在设置 enterRoom 的参数 TRTCParams 时指定 streamId, 而且我们更推荐您采用这种方案。
注意:您需要先在实时音视频 控制台 中的功能配置页开启“启动自动旁路直播”才能生效。
Example
let trtcCloud = TRTCCloud.getTRTCShareInstance();
trtcCloud.enterRoom(params, TRTCAppScene.TRTCAppSceneLIVE);
trtcCloud.startLocalPreview(view);
trtcCloud.startLocalAudio(TRTCAudioQuality.TRTCAudioQualityDefault);
trtcCloud.startPublishing("user_stream_001", TRTCVideoStreamType.TRTCVideoStreamTypeBig);
Parameters:
Name | Type | Description |
---|---|---|
streamId |
String |
自定义流 ID。 |
type |
TRTCVideoStreamType |
仅支持 TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub。 |
stopPublishing()
2.2 停止向腾讯云的直播 CDN 推流
startPublishCDNStream(param)
2.3 开始向非腾讯云的直播 CDN 转推
该接口跟 startPublishing() 类似,但 startPublishCDNStream() 支持向非腾讯云的直播 CDN 转推。 使用 startPublishing() 绑定腾讯云直播 CDN 不收取额外的费用。 使用 startPublishCDNStream() 绑定非腾讯云直播 CDN 需要收取转推费用,且需要通过工单联系我们开通。
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
param |
TRTCPublishCDNParam |
转推参数 Properties
|
stopPublishCDNStream()
2.4 停止向非腾讯云的直播 CDN 推流
setMixTranscodingConfig(config)
2.5 设置云端的混流转码参数
如果您在实时音视频 控制台 中的功能配置页开启了“启动自动旁路直播”功能, 房间里的每一路画面都会有一个默认的直播 CDN 地址。
一个直播间中可能有不止一位主播,而且每个主播都有自己的画面和声音,但对于 CDN 观众来说,他们只需要一路直播流, 所以您需要将多路音视频流混成一路标准的直播流,这就需要混流转码。
当您调用 setMixTranscodingConfig() 接口时,SDK 会向腾讯云的转码服务器发送一条指令,目的是将房间里的多路音视频流混合为一路, 您可以通过 mixUsers 参数来调整每一路画面的位置,以及是否只混合声音,也可以通过 videoWidth、videoHeight、videoBitrate 等参数控制混合音视频流的编码参数。
【画面1】=> 解码 ====> \ \ 【画面2】=> 解码 => 画面混合 => 编码 => 【混合后的画面】 / 【画面3】=> 解码 ====> / 【声音1】=> 解码 ====> \ \ 【声音2】=> 解码 => 声音混合 => 编码 => 【混合后的声音】 / 【声音3】=> 解码 ====> /
参考文档:云端混流转码。
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
config |
TRTCTranscodingConfig |
请参考 trtc_define.js 中关于 TRTCTranscodingConfig 的介绍, 如果传入 null 取消云端混流转码。 Properties
|
startLocalPreview(view)
3.1 启动本地摄像头采集和预览
这个接口会启动默认的摄像头,可以通过 setCurrentCameraDevice()
接口选用其它摄像头
当开始渲染首帧摄像头画面时,您会收到 TRTCCallback 中的 onFirstVideoFrame(null) 回调。
Parameters:
Name | Type | Description |
---|---|---|
view |
HTMLElement |
承载预览画面的 DOM |
stopLocalPreview()
3.2 停止本地摄像头采集和预览
muteLocalVideo(mute)
3.3 是否屏蔽自己的视频画面
当屏蔽本地视频后,房间里的其它成员将会收到 onUserVideoAvailable 回调通知
Parameters:
Name | Type | Description |
---|---|---|
mute |
Boolean |
true:屏蔽;false:开启,默认值:false |
startRemoteView(userId, view, streamType)
3.4 开始显示远端视频画面
在收到 SDK 的 onUserVideoAvailable(userId, true) 通知时,可以获知该远程用户开启了视频, 此后调用 startRemoteView(userId) 接口加载该用户的远程画面时,可以用 loading 动画优化加载过程中的等待体验。 待该用户的首帧画面开始显示时,您会收到 onFirstVideoFrame(userId) 事件回调。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
对方的用户标识 |
view |
HTMLElement |
承载预览画面的 DOM |
streamType |
TRTCVideoStreamType |
视频流类型 |
stopRemoteView(userId, streamType)
3.5 停止显示远端视频画面,同时不再拉取该远端用户的视频数据流
调用此接口后,SDK 会停止接收该用户的远程视频流,同时会清理相关的视频显示资源。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
对方的用户标识 |
streamType |
TRTCVideoStreamType |
视频流类型 |
stopAllRemoteView()
3.6 停止显示所有远端视频画面,同时不再拉取该远端用户的视频数据流
注意:如果有屏幕分享的画面在显示,则屏幕分享的画面也会一并被关闭。
muteRemoteVideoStream(userId, mute)
3.7 暂停接收指定的远端视频流
该接口仅停止接收远程用户的视频流,但并不释放显示资源,所以视频画面会冻屏在 mute 前的最后一帧。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
对方的用户标识 |
mute |
Boolean |
是否停止接收 |
muteAllRemoteVideoStreams(mute)
3.8 停止接收所有远端视频流
Parameters:
Name | Type | Description |
---|---|---|
mute |
Boolean |
是否停止接收 |
setVideoEncoderParam(params)
3.9 设置视频编码器相关参数
该设置决定了远端用户看到的画面质量(同时也是云端录制出的视频文件的画面质量)
Parameters:
Name | Type | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
TRTCVideoEncParam |
视频编码参数 Properties
|
setNetworkQosParam(params)
3.10 设置网络流控相关参数
该设置决定了 SDK 在各种网络环境下的调控策略(例如弱网下是“保清晰”还是“保流畅”)
Parameters:
Name | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
params |
TRTCNetworkQosParam |
网络流控参数 Properties
|
setLocalRenderParams(params)
3.11 设置本地图像(主流)的渲染参数
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
TRTCRenderParams |
本地图像的参数 Properties
|
setLocalViewFillMode(mode)
3.12 废弃接口: 设置本地图像的渲染模式
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setLocalRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
mode |
TRTCVideoFillMode |
填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit
|
setRemoteRenderParams(userId, streamType, params)
3.13 设置远端图像的渲染模式
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
userId |
String |
用户 ID |
||||||||||||
streamType |
TRTCVideoStreamType |
视频流类型 |
||||||||||||
params |
TRTCRenderParams |
本地画面渲染参数 Properties
|
setRemoteViewFillMode(userId, mode)
3.14 废弃接口: 设置远端图像的渲染模式
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setRemoteRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户 ID |
mode |
TRTCVideoFillMode |
填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit
|
setLocalViewRotation(rotation)
3.15 废弃接口: 设置本地图像的顺时针旋转角度
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setLocalRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
rotation |
TRTCVideoRotation |
支持 TRTCVideoRotation90 、 TRTCVideoRotation180 、 TRTCVideoRotation270 旋转角度,默认值:TRTCVideoRotation0
|
setRemoteViewRotation(userId, rotation)
3.16 废弃接口: 设置远端图像的顺时针旋转角度
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setRemoteRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户 ID |
rotation |
TRTCVideoRotation |
支持 TRTCVideoRotation90 、 TRTCVideoRotation180 、 TRTCVideoRotation270 旋转角度,默认值:TRTCVideoRotation0
|
setVideoEncoderRotation(rotation)
3.17 设置视频编码输出的(也就是远端用户观看到的,以及服务器录制下来的)画面方向
Parameters:
Name | Type | Description |
---|---|---|
rotation |
TRTCVideoRotation |
目前支持 TRTCVideoRotation0 和 TRTCVideoRotation180 两个旋转角度,默认值:TRTCVideoRotation0
|
setLocalViewMirror(mirror)
3.18 废弃接口: 设置本地摄像头预览画面的镜像模式
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setLocalRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
mirror |
Boolean |
镜像模式, windows 默认值: false(非镜像模式), mac 默认值: true(镜像模式) |
setVideoEncoderMirror(mirror)
3.19 设置编码器输出的画面镜像模式
该接口不改变本地摄像头的预览画面,但会改变另一端用户看到的(以及服务器录制的)画面效果。
Parameters:
Name | Type | Description |
---|---|---|
mirror |
Boolean |
是否开启远端镜像, true:远端画面镜像;false:远端画面非镜像。默认值:false |
enableSmallVideoStream(enable, params)
3.20 开启大小画面双路编码模式
如果当前用户是房间中的主要角色(例如主播、老师、主持人等),并且使用 PC 或者 Mac 环境,可以开启该模式。 开启该模式后,当前用户会同时输出【高清】和【低清】两路视频流(但只有一路音频流)。 对于开启该模式的当前用户,会占用更多的网络带宽,并且会更加消耗 CPU 计算资源。
对于同一房间的远程观众而言:
- 如果用户的下行网络很好,可以选择观看【高清】画面
- 如果用户的下行网络较差,可以选择观看【低清】画面
Parameters:
Name | Type | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
enable |
Boolean |
是否开启小画面编码,默认值:false |
||||||||||||||||||
params |
TRTCVideoEncParam |
小流的视频参数 Properties
|
setRemoteVideoStreamType(userId, type)
3.21 选定观看指定 userId 的大画面或小画面
此功能需要该 userId 通过 enableSmallVideoStream 提前开启双路编码模式。 如果该 userId 没有开启双路编码模式,则此操作无效。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户 ID |
type |
TRTCVideoStreamType |
视频流类型,即选择看大画面还是小画面,默认为 TRTCVideoStreamTypeBig
|
snapshotVideo(userId, streamType)
3.22 视频画面截图
调用截图接口后,您会收到来自 TRTCCallback 中的 onSnapshotComplete
回调:
截取本地、远程主路和远端辅流的视频画面,并通过 HBITMAP 对象返回给您。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户 ID,空字符串表示截取本地视频画面 |
streamType |
TRTCVideoStreamType |
视频流类型,支持摄像头画面(TRTCVideoStreamTypeBig)和屏幕分享画面(TRTCVideoStreamTypeSub) |
setPriorRemoteVideoStreamType(type)
3.23 废弃接口: 设定观看方优先选择的视频质量
低端设备推荐优先选择低清晰度的小画面。 如果对方没有开启双路视频模式,则此操作无效。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 startRemoteView 接口设置视频流类型参数进行替代。
Parameters:
Name | Type | Description |
---|---|---|
type |
TRTCVideoStreamType |
默认观看大画面还是小画面,默认为 TRTCVideoStreamTypeBig
|
startLocalAudio(quality)
4.1 开启本地音频的采集和上行
该函数会启动麦克风采集,并将音频数据传输给房间里的其他用户。 SDK 并不会默认开启本地的音频上行,也就说,如果您不调用这个函数,房间里的其他用户就听不到您的声音。
注意:TRTC SDK 并不会默认打开本地的麦克风采集。
Parameters:
Name | Type | Description |
---|---|---|
quality |
TRTCAudioQuality |
音频质量
|
stopLocalAudio()
4.2 关闭本地音频的采集和上行
当关闭本地音频的采集和上行,房间里的其它成员会收到 onUserAudioAvailable(false) 回调通知。
muteLocalAudio(mute)
4.3 静音本地的音频
当静音本地音频后,房间里的其它成员会收到 onUserAudioAvailable(false) 回调通知。 与 stopLocalAudio 不同之处在于,muteLocalAudio 并不会停止发送音视频数据,而是会继续发送码率极低的静音包。 在对录制质量要求很高的场景中,选择 muteLocalAudio 是更好的选择,能录制出兼容性更好的 MP4 文件。 这是由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,简单粗暴地 stopLocalAudio 会导致录制出的 MP4 不易播放。
Parameters:
Name | Type | Description |
---|---|---|
mute |
Boolean |
true:屏蔽;false:开启,默认值:false |
muteRemoteAudio(userId, mute)
4.4 静音掉某一个用户的声音,同时不再拉取该远端用户的音频数据流
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户 ID |
mute |
Boolean |
true:静音;false:非静音 |
muteAllRemoteAudio(mute)
4.5 静音掉所有用户的声音,同时不再拉取该远端用户的音频数据流
Parameters:
Name | Type | Description |
---|---|---|
mute |
Boolean |
true:静音;false:非静音 |
setRemoteAudioVolume(userId, volume)
4.6 设置某个远程用户的播放音量
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
远程用户 ID |
volume |
Number |
音量大小,100为原始音量,范围是:[0 ~ 100],默认值为100 |
setAudioCaptureVolume(volume)
4.7 设置 SDK 采集音量
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,取值0 - 100,默认值为100 |
getAudioCaptureVolume() → {Number}
4.8 获取 SDK 采集音量
Returns:
SDK 采集音量
- Type
- Number
setAudioPlayoutVolume(volume)
4.9 设置 SDK 播放音量
注意:在混合远程用户、Bgm和音效的音频流后,送入系统播放前生效。 会影响本地录制的音量大小。 不会影响耳返的音量。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,取值0 - 100,默认值为100 |
getAudioPlayoutVolume() → {Number}
4.10 获取 SDK 播放音量
Returns:
SDK 播放音量
- Type
- Number
enableAudioVolumeEvaluation(interval)
4.11 启用或关闭音量大小提示
开启此功能后,SDK 会在 onUserVoiceVolume() 中反馈对每一路声音音量大小值的评估。 我们在 Demo 中有一个音量大小的提示条,就是基于这个接口实现的。 如希望打开此功能,请在 startLocalAudio() 之前调用。
Parameters:
Name | Type | Description |
---|---|---|
interval |
Number |
设置 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms |
startAudioRecording(path) → {Number}
4.12 开始录音
该方法调用后, SDK 会将通话过程中的所有音频(包括本地音频,远端音频,BGM等)录制到一个文件里。 无论是否进房,调用该接口都生效。 如果调用 exitRoom 时还在录音,录音会自动停止。
注意:录音文件路径需精确到文件名及格式后缀,格式后缀决定录制文件的格式。 例如:指定路径为 path/to/audio.aac,则会生成一个 AAC 格式的文件。目前支持的格式有 PCM, WAV, AAC
Parameters:
Name | Type | Description |
---|---|---|
path |
String |
录音文件路径(必填),录音文件的保存路径,该路径需要用户自行指定,请确保路径存在且可写。 |
Returns:
0:成功;-1:录音已开始;-2:文件或目录创建失败;-3:后缀指定的音频格式不支持
- Type
- Number
stopAudioRecording()
4.13 停止录音
如果调用 exitRoom 时还在录音,录音会自动停止。
setAudioQuality(quality)
4.14 废弃接口: 设置音频质量
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 startLocalAudio 接口设置音频质量参数进行替代。 设置音频质量,主播端的音质越高,观众端的听感越好,但传输所依赖的带宽也就越高,在带宽有限的场景下也更容易出现卡顿。 注意:该方法需要在 startLocalAudio 之前进行设置,否则不会生效。
Parameters:
Name | Type | Description |
---|---|---|
quality |
TRTCAudioQuality |
音频质量
|
getCameraDevicesList() → {Array.<TRTCDeviceInfo>}
5.1 获取摄像头设备列表
Example
var cameralist = this.rtcCloud.getCameraDevicesList();
for (i=0;i<cameralist.length;i++) {
var camera = cameralist[i];
console.info("camera deviceName: " + camera.deviceName + " deviceId:" + camera.deviceId);
}
Returns:
摄像头管理器列表
- Type
- Array.<TRTCDeviceInfo>
setCurrentCameraDevice(deviceId)
5.2 设置要使用的摄像头
Parameters:
Name | Type | Description |
---|---|---|
deviceId |
String |
从 getCameraDevicesList 中得到的设备 ID |
getCurrentCameraDevice() → {TRTCDeviceInfo}
5.3 获取当前使用的摄像头
Returns:
设备信息,能获取设备 ID 和设备名称
- Type
- TRTCDeviceInfo
getMicDevicesList() → {Array.<TRTCDeviceInfo>}
6.1 获取麦克风设备列表
Example
var miclist = this.rtcCloud.getMicDevicesList();
for (i=0;i<miclist.length;i++) {
var mic = miclist[i];
console.info("mic deviceName: " + mic.deviceName + " deviceId:" + mic.deviceId);
}
Returns:
麦克风管理器列表
- Type
- Array.<TRTCDeviceInfo>
getCurrentMicDevice() → {TRTCDeviceInfo}
6.2 获取当前选择的麦克风
Returns:
设备信息,能获取设备 ID 和设备名称
- Type
- TRTCDeviceInfo
setCurrentMicDevice(micId)
6.3 设置要使用的麦克风
选择指定的麦克风作为录音设备,不调用该接口时,默认选择索引为0的麦克风
Parameters:
Name | Type | Description |
---|---|---|
micId |
String |
从 getMicDevicesList 中得到的设备 ID |
getCurrentMicDeviceVolume() → {Number}
6.4 获取系统当前麦克风设备音量
注意:查询的是系统硬件音量大小。
Returns:
音量值,范围是0 - 100
- Type
- Number
setCurrentMicDeviceVolume(volume)
6.5 设置系统当前麦克风设备的音量
注意:该接口的功能是调节系统采集音量,如果用户直接调节系统设置的采集音量时,该接口的设置结果会被用户的操作所覆盖。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
麦克风音量值,范围0 - 100 |
setCurrentMicDeviceMute(mute)
6.6 设置系统当前麦克风设备的静音状态
Parameters:
Name | Type | Description |
---|---|---|
mute |
Boolean |
设置为 true 时,麦克风设备静音;设置为 false时,麦克风设备取消静音 |
getCurrentMicDeviceMute() → {Boolean}
6.7 获取系统当前麦克风设备是否静音
Returns:
静音状态
- Type
- Boolean
getSpeakerDevicesList() → {Array.<TRTCDeviceInfo>}
6.8 获取扬声器设备列表
Example
var speakerlist = this.rtcCloud.getSpeakerDevicesList();
for (i=0;i<speakerlist.length;i++) {
var speaker = speakerlist[i];
console.info("mic deviceName: " + speaker.deviceName + " deviceId:" + speaker.deviceId);
}
Returns:
扬声器管理器列表
- Type
- Array.<TRTCDeviceInfo>
getCurrentSpeakerDevice() → {TRTCDeviceInfo}
6.9 获取当前的扬声器设备
Returns:
设备信息,能获取设备 ID 和设备名称
- Type
- TRTCDeviceInfo
setCurrentSpeakerDevice(speakerId)
6.10 设置要使用的扬声器
Parameters:
Name | Type | Description |
---|---|---|
speakerId |
String |
从 getSpeakerDevicesList 中得到的设备 ID |
getCurrentSpeakerVolume() → {Number}
6.11 获取系统当前扬声器设备音量
注意:
- SDK6.7 及以下版本,windows 查询的不是系统扬声器的音量大小,mac 是查询系统扬声器音量大小
- SDK6.8 及以上版本,windows 和 mac 查询的都是系统扬声器的音量大小
Returns:
扬声器音量,范围0 - 100
- Type
- Number
setCurrentSpeakerVolume(volume)
6.12 设置系统当前扬声器设备音量
注意:该接口的功能是调节系统播放音量,如果用户直接调节系统设置的播放音量时,该接口的设置结果会被用户的操作所覆盖。
- SDK6.7 及以下版本,windows 设置的不是系统扬声器的音量大小,mac 是设置系统扬声器音量大小
- SDK6.8 及以上版本,windows 和 mac 设置的都是系统扬声器的音量大小
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
设置的扬声器音量,范围0 - 100 |
setCurrentSpeakerDeviceMute(mute)
6.13 设置系统当前扬声器设备的静音状态
Parameters:
Name | Type | Description |
---|---|---|
mute |
Boolean |
设置为 true 时,扬声器设备静音;设置为 false时,扬声器设备取消静音 |
getCurrentSpeakerDeviceMute() → {Boolean}
6.14 获取系统当前扬声器设备是否静音
Returns:
静音状态
- Type
- Boolean
setBeautyStyle(style, beauty, white, ruddiness)
7.1 设置美颜、美白、红润效果级别
SDK 内部集成了两套风格不同的磨皮算法,一套我们取名叫“光滑”,适用于美女秀场,效果比较明显。 另一套我们取名“自然”,磨皮算法更多地保留了面部细节,主观感受上会更加自然。
Parameters:
Name | Type | Description |
---|---|---|
style |
TRTCBeautyStyle |
美颜风格,光滑或者自然,光滑风格磨皮更加明显,适合娱乐场景。
|
beauty |
Number |
美颜级别,取值范围0 - 9,0表示关闭,1 - 9值越大,效果越明显 |
white |
Number |
美白级别,取值范围0 - 9,0表示关闭,1 - 9值越大,效果越明显 |
ruddiness |
Number |
红润级别,取值范围0 - 9,0表示关闭,1 - 9值越大,效果越明显,该参数 windows 平台暂未生效 |
setWaterMark(streamType, srcData, srcType, nWidth, nHeight, xOffset, yOffset, fWidthRatio)
7.2 设置水印
水印的位置是通过 xOffset, yOffset, fWidthRatio 来指定的。
- xOffset:水印的坐标,取值范围为0 - 1的浮点数。
- yOffset:水印的坐标,取值范围为0 - 1的浮点数。
- fWidthRatio:水印的大小比例,取值范围为0 - 1的浮点数。
注意:Windows 平台不支持设置水印
Parameters:
Name | Type | Description |
---|---|---|
streamType |
TRTCVideoStreamType |
要设置水印的流类型(TRTCVideoStreamTypeBig、TRTCVideoStreamTypeSub) |
srcData |
ArrayBuffer |
水印图片源数据(传 null 表示去掉水印) |
srcType |
TRTCWaterMarkSrcType |
水印图片源数据类型
|
nWidth |
Number |
水印图片像素宽度(源数据为文件路径时忽略该参数) |
nHeight |
Number |
水印图片像素高度(源数据为文件路径时忽略该参数) |
xOffset |
Number |
水印显示的左上角 x 轴偏移 |
yOffset |
Number |
水印显示的左上角 y 轴偏移 |
fWidthRatio |
Number |
水印显示的宽度占画面宽度比例(水印按该参数等比例缩放显示) |
startRemoteSubStreamView(userId, view)
8.1 废弃接口: 开始显示远端用户的辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)
- startRemoteView() 用于显示主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)。
- startRemoteSubStreamView() 用于显示辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 startRemoteView 接口替代。 注意:请在 onUserSubStreamAvailable 回调后再调用这个接口。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
对方的用户标识 |
view |
HTMLElement |
承载预览画面的 DOM |
stopRemoteSubStreamView(userId)
8.2 废弃接口: 停止显示远端用户的辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 stopRemoteView 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
对方的用户标识 |
setRemoteSubStreamViewFillMode(userId, mode)
8.3 废弃接口: 设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的显示模式。
- setRemoteViewFillMode() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的显示模式。
- setRemoteSubStreamViewFillMode() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的显示模式。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setRemoteRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户的 ID |
mode |
TRTCVideoFillMode |
填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode_Fit
|
setRemoteSubStreamViewRotation(userId, rotation)
8.4 废弃接口: 设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的顺时针旋转角度
- setRemoteViewRotation() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的旋转角度。
- setRemoteSubStreamViewRotation() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的旋转角度。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setRemoteRenderParams 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
userId |
String |
用户 ID |
rotation |
TRTCVideoRotation |
支持90、180、270旋转角度 |
getScreenCaptureSources(thumbWidth, thumbHeight, iconWidth, iconHeight) → {Array.<TRTCScreenCaptureSourceInfo>}
8.5 枚举可共享的窗口列表
如果您要给您的 App 增加屏幕分享功能,一般需要先显示一个窗口选择界面,这样用户可以选择希望分享的窗口。 通过如下函数,您可以获得可分享窗口的 ID、类型、窗口名称以及缩略图。 拿到这些信息后,您就可以实现一个窗口选择界面,当然,您也可以使用我们在 Demo 源码中已经实现好的一个界面。
注意:返回的列表中包括屏幕和应用窗口,屏幕会在列表的前面几个元素中。
Parameters:
Name | Type | Description |
---|---|---|
thumbWidth |
Number |
缩略图宽度,指定要获取的窗口缩略图大小,缩略图可用于绘制在窗口选择界面上 |
thumbHeight |
Number |
缩略图高度,指定要获取的窗口缩略图大小,缩略图可用于绘制在窗口选择界面上 |
iconWidth |
Number |
图标宽度,指定要获取的窗口图标大小 |
iconHeight |
Number |
图标高度,指定要获取的窗口图标大小 |
Returns:
窗口列表包括屏幕
- Type
- Array.<TRTCScreenCaptureSourceInfo>
selectScreenCaptureTarget(type, sourceId, sourcename, captureRect, captureMouse, highlightWindow)
8.6 设置屏幕共享参数,该方法在屏幕共享过程中也可以调用
如果您期望在屏幕分享的过程中,切换想要分享的窗口,可以再次调用这个函数而不需要重新开启屏幕分享。
支持如下四种情况:
- 共享整个屏幕:sourceInfoList 中 type 为 Screen 的 source,captureRect 设为 { 0, 0, 0, 0 }
- 共享指定区域:sourceInfoList 中 type 为 Screen 的 source,captureRect 设为非 NULL,例如 { 100, 100, 300, 300 }
- 共享整个窗口:sourceInfoList 中 type 为 Window 的 source,captureRect 设为 { 0, 0, 0, 0 }
- 共享窗口区域:sourceInfoList 中 type 为 Window 的 source,captureRect 设为非 NULL,例如 { 100, 100, 300, 300 }
Parameters:
Name | Type | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type |
TRTCScreenCaptureSourceType |
采集源类型
|
|||||||||||||||
sourceId |
String |
采集源ID,对于窗口,该字段指示窗口句柄;对于屏幕,该字段指示屏幕ID |
|||||||||||||||
sourcename |
String |
采集源名称,UTF8编码 |
|||||||||||||||
captureRect |
Rect |
指定捕获的区域 Properties
|
|||||||||||||||
captureMouse |
Boolean |
指定是否捕获鼠标指针 |
|||||||||||||||
highlightWindow |
Boolean |
指定是否高亮正在共享的窗口,以及当捕获图像被遮挡时高亮遮挡窗口提示用户移走遮挡 |
startScreenCapture(view, type, params)
8.7 启动屏幕分享,支持选择使用主路或辅路进行屏幕分享。(暂不支持 mac 平台预览界面)
注意: 一个用户同时最多只能上传一条主路(TRTCVideoStreamTypeBig)画面和一条辅路(TRTCVideoStreamTypeSub)画面, 默认情况下,屏幕分享使用辅路画面,如果使用主路画面,建议您提前停止摄像头采集(stopLocalPreview)避免相互冲突。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
view |
HTMLElement |
null
|
承载预览画面的 DOM |
type |
TRTCVideoStreamType |
屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub),默认使用辅路。 |
|
params |
TRTCVideoEncParam |
null
|
屏幕分享的画面编码参数,可以设置为 null,表示让 SDK 选择最佳的编码参数(分辨率、码率等)。即使在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig,依然可以使用此接口更新屏幕分享的编码参数。 |
pauseScreenCapture()
8.8 暂停屏幕分享
resumeScreenCapture()
8.9 恢复屏幕分享
stopScreenCapture()
8.10 停止屏幕分享
setSubStreamEncoderParam(params)
8.11 设置辅流(屏幕分享)的编码器参数
- setVideoEncoderParam() 用于设置远端主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的编码参数。
- setSubStreamEncoderParam() 用于设置远端辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的编码参数。
该设置决定了远端用户看到的画面质量,同时也是云端录制出的视频文件的画面质量。
Parameters:
Name | Type | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
params |
TRTCVideoEncParam |
辅流(屏幕分享)编码参数 Properties
|
setSubStreamMixVolume(volume)
8.12 设置辅流(屏幕分享)的混音音量大小
这个数值越高,辅路音量的占比就约高,麦克风音量占比就越小,所以不推荐设置得太大,否则麦克风的声音就被压制了。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
设置的混音音量大小,范围0 - 100 |
sendCustomCmdMsg(cmdId, msg, reliable, ordered) → {Boolean}
10.1 发送自定义消息给房间内所有用户
该接口可以借助音视频数据通道向当前房间里的其他用户广播您自定义的数据,但因为复用了音视频数据通道, 请务必严格控制自定义消息的发送频率和消息体的大小,否则会影响音视频数据的质量控制逻辑,造成不确定性的问题。
注意:本接口有以下限制:
- 发送消息到房间内所有用户,每秒最多能发送30条消息。
- 每个包最大为1KB,超过则很有可能会被中间路由器或者服务器丢弃。
- 每个客户端每秒最多能发送总计8KB数据。
- 将 reliable 和 ordered 同时设置为 true 或 false,暂不支持交叉设置。
- 强烈建议不同类型的消息使用不同的 cmdID,这样可以在要求有序的情况下减小消息时延。
Parameters:
Name | Type | Description |
---|---|---|
cmdId |
Number |
消息 ID,取值范围为1 - 10 |
msg |
String |
待发送的消息,最大支持1KB(1000字节)的数据大小 |
reliable |
Boolean |
是否可靠发送,可靠发送的代价是会引入一定的延时,因为接收端要暂存一段时间的数据来等待重传 |
ordered |
Boolean |
是否要求有序,即是否要求接收端接收的数据顺序和发送端发送的顺序一致,这会带来一定的接收延时,因为在接收端需要暂存并排序这些消息 |
Returns:
true:消息已经发出;false:消息发送失败
- Type
- Boolean
sendSEIMsg(msg, repeatCount) → {Boolean}
10.2 将小数据量的自定义数据嵌入视频帧中
跟 sendCustomCmdMsg 的原理不同,sendSEIMsg 是将数据直接塞入视频数据头中。因此,即使视频帧被旁路到了直播 CDN 上, 这些数据也会一直存在。但是由于要把数据嵌入视频帧中,所以数据本身不能太大,推荐几个字节就好。
最常见的用法是把自定义的时间戳(timstamp)用 sendSEIMsg 嵌入视频帧中,这种方案的最大好处就是可以实现消息和画面的完美对齐。
注意:本接口有以下限制:
- 数据在接口调用完后不会被即时发送出去,而是从下一帧视频帧开始带在视频帧中发送。
- 发送消息到房间内所有用户,每秒最多能发送30条消息(与 sendCustomCmdMsg 共享限制)。
- 每个包最大为1KB,若发送大量数据,会导致视频码率增大,可能导致视频画质下降甚至卡顿(与 sendCustomCmdMsg 共享限制)。
- 每个客户端每秒最多能发送总计8KB数据(与 sendCustomCmdMsg 共享限制)。
- 若指定多次发送(repeatCount>1),则数据会被带在后续的连续 repeatCount 个视频帧中发送出去,同样会导致视频码率增大。
- 如果 repeatCount>1,多次发送,接收消息 onRecvSEIMsg 回调也可能会收到多次相同的消息,需要去重。
Parameters:
Name | Type | Description |
---|---|---|
msg |
String |
待发送的数据,最大支持1kb(1000字节)的数据大小 |
repeatCount |
Number |
发送数据次数 |
Returns:
true:消息已通过限制,等待后续视频帧发送;false:消息被限制发送
- Type
- Boolean
playBGM(path)
11.1 废弃接口: 启动播放背景音乐
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 startPlayMusic 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
path |
String |
音乐文件路径 |
stopBGM()
11.2 废弃接口: 停止播放背景音乐
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 stopPlayMusic 接口替代。
pauseBGM()
11.3 废弃接口: 暂停播放背景音乐
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 pausePlayMusic 接口替代。
resumeBGM()
11.4 废弃接口: 继续播放背景音乐
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 resumePlayMusic 接口替代。
getBGMDuration(path) → {Number}
11.5 废弃接口: 获取背景音乐文件总时长,单位毫秒
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 getMusicDurationInMS 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
path |
String |
音乐文件路径 |
Returns:
成功返回时长,失败返回-1
- Type
- Number
setBGMPosition(pos)
11.6 废弃接口: 设置背景音乐播放进度
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 seekMusicToPosInTime 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
pos |
Number |
单位毫秒 |
setBGMVolume(volume)
11.7 废弃接口: 设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setAllMusicVolume 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 200。 |
setBGMPlayoutVolume(volume)
11.8 废弃接口: 设置背景音乐本地播放音量的大小
播放背景音乐混音时使用,用来控制背景音乐在本地播放时的音量大小。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setMusicPlayoutVolume 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
setBGMPublishVolume(volume)
11.9 废弃接口: 设置背景音乐远端播放音量的大小
播放背景音乐混音时使用,用来控制背景音乐在远端播放时的音量大小。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setMusicPublishVolume 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
startSystemAudioLoopback(path)
11.10 打开系统声音采集
开启后可以采集整个操作系统的播放声音(path 为空)或某一个播放器(path 不为空)的声音, 并将其混入到当前麦克风采集的声音中一起发送到云端。
Parameters:
Name | Type | Description |
---|---|---|
path |
String |
不传 path 或为 null,代表采集整个操作系统的声音;path 填写 exe 程序(如 QQ音乐)所在的路径,将会启动此程序并只采集此程序的声音。 |
stopSystemAudioLoopback()
11.11 关闭系统声音采集
setSystemAudioLoopbackVolume(volume)
11.12 设置系统声音采集的音量
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,取值范围为0 - 100。 |
startPlayMusic(musicParam, callbackMap)
11.13 启动播放背景音乐
Example
// 音乐播放
import TRTCCloud, { AudioMusicParam } from 'trtc-electron-sdk';
const rtcCloud = new TRTCCloud();
const params = new AudioMusicParam();
params.id = 1;
params.path = 'path';
params.publish = true;
rtcCloud.startPlayMusic(params, {
onStart: (id: number, errCode: number) => {
console.log(`onStart, id: ${id}, errorCode: ${errCode}`);
},
onPlayProgress: (id: number, curPtsMS: number, durationMS: number) => {
console.log(`onPlayProgress, id: ${id}, curPtsMS: ${curPtsMS}, durationMS: ${durationMS}`);
},
onComplete: (id: number, errCode: number) => {
console.log(`onComplete, id: ${id}, errCode: ${errCode}`);
}
)
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
musicParam |
AudioMusicParam |
背景音乐参数 |
||||||||||||
callbackMap |
Object |
播放音乐事件回调(可选) Properties
|
stopPlayMusic(id)
11.14 停止播放背景音乐
Parameters:
Name | Type | Description |
---|---|---|
id |
Number |
音乐 ID |
pausePlayMusic(id)
11.15 暂停播放背景音乐
Parameters:
Name | Type | Description |
---|---|---|
id |
Number |
音乐 ID |
resumePlayMusic(id)
11.16 恢复播放背景音乐
Parameters:
Name | Type | Description |
---|---|---|
id |
Number |
音乐 ID |
getMusicDurationInMS(path) → {Number}
11.17 获取背景音乐文件总时长,单位毫秒
Parameters:
Name | Type | Description |
---|---|---|
path |
String |
音乐文件路径 |
Returns:
成功返回时长,失败返回-1
- Type
- Number
seekMusicToPosInTime(id, pts)
11.18 设置背景音乐播放进度
Parameters:
Name | Type | Description |
---|---|---|
id |
Number |
音乐 ID |
pts |
Number |
单位: 毫秒 |
setAllMusicVolume(volume)
11.19 设置背景音乐的音量大小,播放背景音乐混音时使用,用来控制背景音音量大小
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 200。 |
setMusicPlayoutVolume(id, volume)
11.20 设置背景音乐本地播放音量的大小
播放背景音乐混音时使用,用来控制背景音乐在本地播放时的音量大小。
Parameters:
Name | Type | Description |
---|---|---|
id |
Number |
音乐 ID |
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
setMusicPublishVolume(id, volume)
11.21 设置背景音乐远端播放音量的大小
播放背景音乐混音时使用,用来控制背景音乐在远端播放时的音量大小。
Parameters:
Name | Type | Description |
---|---|---|
id |
Number |
音乐 ID |
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 100;默认值:100 |
playAudioEffect(effect)
12.1 废弃接口: 播放音效
每个音效都需要您指定具体的 ID,您可以通过该 ID 对音效的开始、停止、音量等进行设置。 若您想同时播放多个音效,请分配不同的 ID 进行播放。因为使用同一个 ID 播放不同音效,SDK 将会停止上一个 ID 对应的音效播放,再启动新的音效播放。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 startPlayMusic 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
effect |
TRTCAudioEffectParam |
音效 |
Throws:
setAudioEffectVolume(effectId, volume)
12.2 废弃接口: 设置音效音量
注意:会覆盖通过 setAllAudioEffectsVolume 指定的整体音效音量。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setMusicPublishVolume, setMusicPlayoutVolume 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
effectId |
Number |
音效 ID |
volume |
Number |
音量大小,取值范围为0 - 100;默认值:100 |
stopAudioEffect(effectId)
12.3 废弃接口: 停止音效
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 stopPlayMusic 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
effectId |
Number |
音效 ID |
stopAllAudioEffects()
12.4 废弃接口: 停止所有音效
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃
setAllAudioEffectsVolume(volume)
12.5 废弃接口: 设置所有音效的音量
注意:该操作会覆盖通过 setAudioEffectVolume 指定的单独音效音量。
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 setAllMusicVolume 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,取值范围为0 - 100;默认值:100 |
pauseAudioEffect(effectId)
12.6 废弃接口: 暂停音效
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 pausePlayMusic 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
effectId |
Number |
音效 ID |
resumeAudioEffect(effectId)
12.7 废弃接口: 恢复音效
- Deprecated:
-
- 从 TRTCSDK 8.0 后该接口已被废弃,请使用 resumePlayMusic 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
effectId |
Number |
音效 ID |
startSpeedTest(sdkAppId, userId, userSig)
13.1 开始进行网络测速(视频通话期间请勿测试,以免影响通话质量)
测速结果将会用于优化 SDK 接下来的服务器选择策略,因此推荐您在用户首次通话前先进行一次测速,这将有助于我们选择最佳的服务器。 同时,如果测试结果非常不理想,您可以通过醒目的 UI 提示用户选择更好的网络。
注意:测速本身会消耗一定的流量,所以也会产生少量额外的流量费用。
Parameters:
Name | Type | Description |
---|---|---|
sdkAppId |
Number |
应用标识 |
userId |
String |
用户标识 |
userSig |
String |
用户签名 |
stopSpeedTest()
13.2 停止网络测速
startCameraDeviceTest(view)
13.3 开始进行摄像头测试
会触发 onFirstVideoFrame 回调接口
注意:在测试过程中可以使用 setCurrentCameraDevice 接口切换摄像头。
Parameters:
Name | Type | Description |
---|---|---|
view |
HTMLElement |
承载预览画面的 DOM |
stopCameraDeviceTest()
13.4 停止摄像头测试
startMicDeviceTest(interval)
13.5 开始进行麦克风测试
回调接口 onTestMicVolume 获取测试数据
该方法测试麦克风是否能正常工作,volume 的取值范围为0 - 100。
Parameters:
Name | Type | Description |
---|---|---|
interval |
Number |
反馈音量提示的时间间隔(ms),建议设置到大于 200 毫秒 |
stopMicDeviceTest()
13.6 停止麦克风测试
startSpeakerDeviceTest(testAudioFilePath)
13.7 开始进行扬声器测试
回调接口 onTestSpeakerVolume 获取测试数据
该方法播放指定的音频文件测试播放设备是否能正常工作。如果能听到声音,说明播放设备能正常工作。
Parameters:
Name | Type | Description |
---|---|---|
testAudioFilePath |
String |
音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持文件格式:WAV、MP3 |
stopSpeakerDeviceTest()
13.8 停止扬声器测试
getSDKVersion() → {String}
14.1 获取 SDK 版本信息
Returns:
UTF-8 编码的版本号。
- Type
- String
setLogLevel(level)
14.2 设置 Log 输出级别
Parameters:
Name | Type | Description |
---|---|---|
level |
TRTCLogLevel |
Log 输出等级,默认值:TRTCLogLevelNone
|
setConsoleEnabled(enabled)
14.3 启用或禁用控制台日志打印
Parameters:
Name | Type | Description |
---|---|---|
enabled |
Boolean |
指定是否启用,默认为禁止状态 |
setLogCompressEnabled(enabled)
14.4 启用或禁用 Log 的本地压缩
开启压缩后,Log 存储体积明显减小,但需要腾讯云提供的 Python 脚本解压后才能阅读。 禁用压缩后,Log 采用明文存储,可以直接用记事本打开阅读,但占用空间较大。
Parameters:
Name | Type | Description |
---|---|---|
enabled |
Boolean |
指定是否启用,默认为禁止状态 |
setLogDirPath(path)
14.5 设置日志保存路径
注意:
- windows 日志文件默认保存在 C:/Users/[系统用户名]/AppData/Roaming/Tencent/liteav/log,即 %appdata%/Tencent/liteav/log 下,如需修改,必须在所有方法前调用。
- mac 日志文件默认保存在 sandbox Documents/log 下,如需修改,必须在所有方法前调用。
Parameters:
Name | Type | Description |
---|---|---|
path |
String |
存储日志的文件夹,例如 "D:\Log",UTF-8 编码 |
setLogCallback(callback)
14.6 设置日志回调
Parameters:
Name | Type | Description |
---|---|---|
callback |
function |
日志回调 |
callExperimentalAPI(jsonStr)
14.7 调用实验性 API 接口
注意:该接口用于调用一些实验性功能
Parameters:
Name | Type | Description |
---|---|---|
jsonStr |
String |
接口及参数描述的 JSON 字符串 |
setMicVolumeOnMixing(volume)
从 TRTCSDK6.9 后该接口已被废弃
- Deprecated:
-
- 从 TRTCSDK6.9 后该接口已被废弃,请使用 setAudioCaptureVolume 接口替代。
Parameters:
Name | Type | Description |
---|---|---|
volume |
Number |
音量大小,100为正常音量,取值范围为0 - 200。 |
setRenderMode(mode)
选择绘制的模式 (webgl/yuvcanvs/)
Parameters:
Name | Type | Default | Description |
---|---|---|---|
mode |
Number |
1
|
|