TrtcCloud

TrtcCloud

new TrtcCloud()

TrtcCloud

Methods

(static) createInstance()

创建 TrtcCloud 单例

Example
TrtcCloud.createInstance();

(static) destroyInstance()

销毁 TrtcCloud 单例

Example
TrtcCloud.destroyInstance();

(static) on(event, callback)

设置 TrtcCloud 事件监听

Example
this.trtcCloud = TrtcCloud.createInstance(); // 创建 trtcCloud 实例
this.trtcCloud.on('onEnterRoom', (res) => {});
Parameters:
Name Type Description
event String

事件名称

callback function

事件回调

(static) off(event)

取消事件绑定

Example
this.trtcCloud.off('onEnterRoom');
this.trtcCloud.off('*'); // 取消所有绑定的事件
Parameters:
Name Type Description
event String

事件名称,传入通配符 '*' 会解除所有事件绑定。

(static) enterRoom(params, scene)

进房
调用接口后,您会收到来自 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 电台]等。

Note:

  1. 当 scene 选择为 TRTCAppSceneLIVE 或 TRTCAppSceneVoiceChatRoom 时,您必须通过 TRTCParams 中的 role 字段指定当前用户的角色。
  2. 不管进房是否成功,enterRoom 都必须与 exitRoom 配对使用,在调用 exitRoom 前再次调用 enterRoom 函数会导致不可预期的错误问题。
Example
import { TRTCAppScene } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud = TrtcCloud.createInstance(); // 创建实例,只需创建一次
const params = {
  sdkAppId: 0,
  userId: 'xxx',
  roomId: 12345,
  userSig: 'xxx'
};
this.trtcCloud.enterRoom(params, TRTCAppScene.TRTCAppSceneVideoCall);
Parameters:
Name Type Description
params TRTCParams

进房参数

Properties
Name Type Attributes Description
sdkAppId Number

应用标识(必填)

userId String

用户标识(必填)

userSig String

用户签名(必填)

roomId Number

房间号码, roomId 和 strRoomId 必须填一个, 若您选用 strRoomId,则 roomId 需要填写为0。

strRoomId String

字符串房间号码 [选填],在同一个房间内的用户可以看到彼此并进行视频通话, roomId 和 strRoomId 必须填一个。若两者都填,则优先选择 roomId

role TRTCRoleType

直播场景下的角色,默认值:主播

  • TRTCRoleAnchor: 主播,可以上行视频和音频,一个房间里最多支持50个主播同时上行音视频。
  • TRTCRoleAudience: 观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。
privateMapKey String <optional>

房间签名(非必填)

businessInfo String <optional>

业务数据(非必填)

streamId String <optional>

自定义 CDN 播放地址(非必填)

userDefineRecordId String <optional>

设置云端录制完成后的回调消息中的 "userdefinerecordid" 字段内容,便于您更方便的识别录制回调(非必填)

scene TRTCAppScene

应用场景,目前支持视频通话(TRTCAppSceneVideoCall)、语音通话(TRTCAppSceneAudioCall)、在线直播(TRTCAppSceneLIVE)、语音聊天室(VTRTCAppSceneVoiceChatRoom)四种场景, 详见 [TrtcDefines] 中 TRTCAppScene 参数定义

(static) exitRoom()

退房
执行退出房间的相关逻辑释放资源后,SDK 会通过 onExitRoom() 回调通知到您

Note:

  1. 如果您要再次调用 enterRoom() 或者切换到其它的音视频 SDK,请等待 onExitRoom() 回调到来后再执行相关操作,否则可能会遇到如摄像头、麦克风设备被强占等各种异常问题。
Example
this.trtcCloud.exitRoom();

(static) switchRole(role)

切换角色,仅适用于直播场景(TRTCAppSceneLIVE 和 TRTCAppSceneVoiceChatRoom)

在直播场景下,一个用户可能需要在“观众”和“主播”之间来回切换。 您可以在进房前通过 TRTCParams 中的 role 字段确定角色,也可以通过 switchRole 在进房后切换角色。

Example
import { TRTCRoleType } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.switchRole(TRTCRoleType.TRTCRoleAudience);
Parameters:
Name Type Description
role TRTCRoleType

目标角色,默认为主播

  • TRTCRoleAnchor: 主播,可以上行视频和音频,一个房间里最多支持50个主播同时上行音视频。
  • TRTCRoleAudience: 观众,只能观看,不能上行视频和音频,一个房间里的观众人数没有上限。

(static) connectOtherRoom(params)

请求跨房通话

默认情况下,只有同一个房间中的用户之间可以进行音视频通话,不同的房间之间的音视频流是相互隔离的。 使用该接口让身处两个不同房间中的主播进行跨房间的音视频流分享,从而让每个房间中的观众都能观看到这两个主播的音视频。 跨房通话的请求结果会通过监听 onConnectOtherRoom 事件通知给您。

Example
this.trtcCloud.connectOtherRoom({"roomId": 1233, "userId": "user_11"});
this.trtcCloud.connectOtherRoom({"strRoomId": "1233", "userId": "user_22"});
Parameters:
Name Type Description
params Object

跨房通话参数

  • 如果对端的房间号为数字,那么传入的参数为 roomId。
  • 如果对端的房间号为字符串,那么传入的参数为 strRoomId。
  • 针对对端的房间号类型传递对应参数,不需要两个同时传递。具体请看 example 的使用。
Properties
Name Type Description
roomId Number

跨房通话时对端的数字房间号 roomId(与 strRoomId 选填其中一个,不可同时传递)

strRoomId String

跨房通话时对端的字符串房间号 strRoomId(与 roomId 选填其中一个,不可同时传递)

userId String

跨房通话时对端的 userId(必填)

(static) disconnectOtherRoom()

退出跨房通话

退出跨房通话的请求结果会通过监听 onDisconnectOtherRoom 事件通知给您。

Example
this.trtcCloud.disconnectOtherRoom();

(static) startLocalPreview(isFrontCamera, viewIdopt)

开启本地视频的预览画面
当开始渲染首帧摄像头画面时,您会收到 onFirstVideoFrame(null) 回调

Example
// 预览本地画面
const viewId = this.userId;
this.trtcCloud.startLocalPreview(true, viewId);
Parameters:
Name Type Attributes Default Description
isFrontCamera Boolean true

前置、后置摄像头,true:前置摄像头;false:后置摄像头,默认为 true

viewId String <optional>

用于承载视频画面的渲染控件,使用原生插件中的 TRTCCloudUniPlugin-TXLocalViewComponent component,需要提供 viewId 属性值,例如 viewId=userId

(static) setVideoEncoderParam(param)

设置视频编码器的编码参数

  • 该设置能够决定远端用户看到的画面质量,同时也能决定云端录制出的视频文件的画面质量。
Example
import { TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoEncParam } from '@/TrtcCloud/lib/TrtcDefines';
const videoResolution = TRTCVideoResolution.TRTCVideoResolution_480_360;
const videoResolutionMode = TRTCVideoResolutionMode.TRTCVideoResolutionModeLandscape; // 横屏采集
const videoFps = 15;
const videoBitrate = 900;
const minVideoBitrate = 200;
const enableAdjustRes = false;
// const param = new TRTCVideoEncParam(videoResolution, videoResolutionMode, videoFps, videoBitrate, minVideoBitrate, enableAdjustRes); // v1.1.0 方式
const param = { // v1.2.0 以上版本支持的方式
 videoResolution,
 videoResolutionMode,
 videoFps,
 videoBitrate,
 minVideoBitrate,
 enableAdjustRes,
};
this.trtcCloud.setVideoEncoderParam(param);
Parameters:
Name Type Description
param TRTCVideoEncParam

用于设置视频编码器的相关参数

(static) switchCamera(isFrontCamera)

切换前置或后置摄像头

Example
// 切换前置或后置摄像头
const isFrontCamera = true;
this.trtcCloud.switchCamera(isFrontCamera);
Parameters:
Name Type Description
isFrontCamera Boolean

前置、后置摄像头,true:前置摄像头;false:后置摄像头

(static) stopLocalPreview()

停止本地视频采集及预览

Example
this.trtcCloud.stopLocalPreview();

(static) setLocalRenderParams(params)

设置本地画面的渲染参数,可设置的参数包括有:画面的旋转角度、填充模式以及左右镜像等。

Example
import { TRTCVideoRotation, TRTCVideoFillMode, TRTCVideoMirrorType } from '@/TrtcCloud/lib/TrtcDefines';
const renderParams = {
 rotation: TRTCVideoRotation.TRTCVideoRotation_0,
 fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,
 mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Auto
};
this.trtcCloud.setLocalRenderParams(renderParams);
Parameters:
Name Type Description
params TRTCRenderParams

本地图像的参数

Properties
Name Type Description
rotation TRTCVideoRotation

图像的顺时针旋转角度,支持90、180以及270旋转角度,默认值:TRTCVideoRotation.TRTCVideoRotation_0

fillMode TRTCVideoFillMode

视频画面填充模式,填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode.TRTCVideoFillMode_Fill

mirrorType TRTCVideoMirrorType

画面镜像模式,默认值:TRTCVideoMirrorType.TRTCVideoMirrorType_Auto

(static) muteLocalVideo(streamType, mute)

暂停/恢复发布本地的视频流

该接口可以暂停(或恢复)发布本地的视频画面,暂停之后,同一房间中的其他用户将无法继续看到自己画面。 该接口在指定 TRTCVideoStreamTypeBig 时等效于 start/stopLocalPreview 这两个接口,但具有更好的响应速度。 因为 start/stopLocalPreview 需要打开和关闭摄像头,而打开和关闭摄像头都是硬件设备相关的操作,非常耗时。 相比之下,muteLocalVideo 只需要在软件层面对数据流进行暂停或者放行即可,因此效率更高,也更适合需要频繁打开关闭的场景。 当暂停/恢复发布指定 TRTCVideoStreamTypeBig 后,同一房间中的其他用户将会收到 onUserVideoAvailable 回调通知。 当暂停/恢复发布指定 TRTCVideoStreamTypeSub 后,同一房间中的其他用户将会收到 onUserSubStreamAvailable 回调通知。

Example
this.trtcCloud.muteLocalVideo(TRTCVideoStreamType.TRTCVideoStreamTypeBig, true);
Parameters:
Name Type Description
streamType Number

要暂停/恢复的视频流类型(仅支持 TRTCVideoStreamTypeBig 和 TRTCVideoStreamTypeSub)

mute Boolean

true:屏蔽;false:开启,默认值:false

(static) startRemoteView(userId, streamType, viewId)

显示远端视频或辅流

Example
import { TRTCVideoStreamType } from '@/TrtcCloud/lib/TrtcDefines';
const viewId = this.remoteUserId;
this.trtcCloud.startRemoteView(userId, TRTCVideoStreamType.TRTCVideoStreamTypeBig, viewId);
Parameters:
Name Type Description
userId String

指定远端用户的 userId

streamType Number

指定要观看 userId 的视频流类型

  • 高清大画面:TRTCVideoStreamType.TRTCVideoStreamTypeBig
  • 低清小画面:TRTCVideoStreamType.TRTCVideoStreamTypeSmall
  • 辅流(屏幕分享):TRTCVideoStreamType.TRTCVideoStreamTypeSub
viewId String

用于承载视频画面的渲染控件,使用原生插件中的 TRTCCloudUniPlugin-TXRemoteViewComponent component,需要提供 viewId 属性值,例如 viewId=userId

(static) stopRemoteView(userId, streamType)

停止显示远端视频画面,同时不再拉取该远端用户的视频数据流
指定要停止观看的 userId 的视频流类型

Example
import { TRTCVideoStreamType } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.stopRemoteView(remoteUserId, TRTCVideoStreamType.TRTCVideoStreamTypeBig);
Parameters:
Name Type Description
userId String

指定的远端用户 ID

streamType Number
  • 高清大画面:TRTCVideoStreamType.TRTCVideoStreamTypeBig
  • 低清小画面:TRTCVideoStreamType.TRTCVideoStreamTypeSmall
  • 辅流(屏幕分享):TRTCVideoStreamType.TRTCVideoStreamTypeSub

(static) setRemoteRenderParams(userId, streamType, params)

设置远端画面的渲染参数,可设置的参数包括有:画面的旋转角度、填充模式以及左右镜像等。

Example
import { TRTCVideoRotation, TRTCVideoFillMode, TRTCVideoMirrorType } from '@/TrtcCloud/lib/TrtcDefines';
const renderParams = {
 rotation: TRTCVideoRotation.TRTCVideoRotation_0,
 fillMode: TRTCVideoFillMode.TRTCVideoFillMode_Fill,
 mirrorType: TRTCVideoMirrorType.TRTCVideoMirrorType_Auto
};
this.trtcCloud.setRemoteRenderParams(userId, TRTCVideoStreamType.TRTCVideoStreamTypeBig, renderParams);
Parameters:
Name Type Description
userId String

远端用户 ID

streamType Number

可以设置为主路画面(TRTCVideoStreamTypeBig)或辅路画面(TRTCVideoStreamTypeSub)

params TRTCRenderParams

图像的参数

Properties
Name Type Description
rotation TRTCVideoRotation

图像的顺时针旋转角度,支持90、180以及270旋转角度,默认值:TRTCVideoRotation.TRTCVideoRotation_0

fillMode TRTCVideoFillMode

视频画面填充模式,填充(画面可能会被拉伸裁剪)或适应(画面可能会有黑边),默认值:TRTCVideoFillMode.TRTCVideoFillMode_Fill

mirrorType TRTCVideoMirrorType

画面镜像模式,默认值:TRTCVideoMirrorType.TRTCVideoMirrorType_Auto

(static) setVideoEncoderRotation(rotation)

设置视频编码器输出的画面方向
该设置不影响本地画面的预览方向,但会影响房间中其他用户所观看到(以及云端录制文件)的画面方向。 当用户将手机或 Pad 上下颠倒时,由于摄像头的采集方向没有变,所以房间中其他用户所看到的画面会变成上下颠倒的, 在这种情况下,您可以通过调用该接口将 SDK 编码出的画面方向旋转180度,如此一来,房间中其他用户所看到的画面可保持正常的方向。 如果您希望实现上述这种友好的交互体验,我们更推荐您直接调用 setGSensorMode 实现更加智能的方向适配,无需您手动调用本接口。

Example
import { TRTCVideoRotation } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.setVideoEncoderRotation(TRTCVideoRotation.TRTCVideoRotation_90);
Parameters:
Name Type Description
rotation Number

目前支持 0、90、180、270 两个旋转角度,默认值:TRTCVideoRotation_0,即不旋转。

(static) setVideoEncoderMirror(mirror)

设置编码器输出的画面镜像模式

Example
this.trtcCloud.setVideoEncoderMirror(true);
Parameters:
Name Type Description
mirror Boolean

是否开启远端镜像,true:开启远端画面镜像;false:关闭远端画面镜像,默认值:false。

(static) setGSensorMode(mode)

设置重力感应的适配模式
您可以通过本接口实现如下这种友好的交互体验: 当用户将手机或 Pad 上下颠倒时,由于摄像头的采集方向没有变,所以房间中其他用户所看到的画面会变成上下颠倒的, 在这种情况下,您可以通过调用该接口让 SDK 根据设备陀螺仪的朝向自动调整本地画面和编码器输出画面的旋转方向,以使远端观众可以看到正常朝向的画面。

Example
import { TRTCGSensorMode } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.setGSensorMode(TRTCGSensorMode.TRTC_GSENSOR_MODE_DISABLE);
Parameters:
Name Type Description
mode Number

重力感应模式,详情请参见 TRTCGSensorMode,默认值:TRTCGSensorMode_UIAutoLayout。。

(static) snapshotVideo(userId, streamType, sourceType)

视频画面截图

您可以通过本接口截取本地的视频画面,远端用户的主路画面以及远端用户的辅路(屏幕分享)画面。

Example
import { TRTCVideoStreamType } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.snapshotVideo(null, TRTCVideoStreamType.TRTCVideoStreamTypeBig, TRTCSnapshotSourceType.TRTCSnapshotSourceTypeStream); // 截取本地视频流画面
this.trtcCloud.snapshotVideo(this.remoteUserId, TRTCVideoStreamType.TRTCVideoStreamTypeBig, TRTCSnapshotSourceType.TRTCSnapshotSourceTypeView); // 截取远端指定用户视频渲染画面
Parameters:
Name Type Description
userId String | null

用户 ID,如指定 null 表示截取本地的视频画面

streamType Number

视频流类型,可选择截取主路画面(TRTCVideoStreamTypeBig,常用于摄像头)或辅路画面(TRTCVideoStreamTypeSub,常用于屏幕分享)

sourceType TRTCSnapshotSourceType

画面来源,可选择截取视频流画面(TRTCSnapshotSourceTypeStream)或视频渲染画面(TRTCSnapshotSourceTypeView),前者一般更清晰

(static) startLocalAudio(quality)

开启本地音频的采集和上行, 并设置音频质量
该函数会启动麦克风采集,并将音频数据传输给房间里的其他用户。 SDK 不会默认开启本地音频采集和上行,您需要调用该函数开启,否则房间里的其他用户将无法听到您的声音
主播端的音质越高,观众端的听感越好,但传输所依赖的带宽也就越高,在带宽有限的场景下也更容易出现卡顿

Example
import { TRTCAudioQuality } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.startLocalAudio(TRTCAudioQuality.TRTCAudioQualityDefault);
Parameters:
Name Type Description
quality TRTCAudioQuality

声音音质

  • TRTCAudioQualitySpeech,流畅:采样率:16k;单声道;音频裸码率:16kbps;适合语音通话为主的场景,比如在线会议,语音通话。
  • TRTCAudioQualityDefault,默认:采样率:48k;单声道;音频裸码率:50kbps;SDK 默认的音频质量,如无特殊需求推荐选择之。
  • TRTCAudioQualityMusic,高音质:采样率:48k;双声道 + 全频带;音频裸码率:128kbps;适合需要高保真传输音乐的场景,比如在线K歌、音乐直播等

(static) stopLocalAudio()

关闭本地音频的采集和上行
当关闭本地音频的采集和上行,房间里的其它成员会收到 onUserAudioAvailable(false) 回调通知

Example
this.trtcCloud.stopLocalAudio();

(static) muteLocalAudio(mute)

静音本地的音频

当静音本地音频后,房间里的其它成员会收到 onUserAudioAvailable(false) 回调通知。 与 stopLocalAudio 不同之处在于,muteLocalAudio 并不会停止发送音视频数据,而是会继续发送码率极低的静音包。 在对录制质量要求很高的场景中,选择 muteLocalAudio 是更好的选择,能录制出兼容性更好的 MP4 文件。 这是由于 MP4 等视频文件格式,对于音频的连续性是要求很高的,简单粗暴地 stopLocalAudio 会导致录制出的 MP4 不易播放。

Example
this.trtcCloud.muteLocalAudio(true);
Parameters:
Name Type Description
mute Boolean

true:屏蔽;false:开启,默认值:false

(static) muteRemoteAudio(userId, mute)

静音掉某一个用户的声音,同时不再拉取该远端用户的音频数据流

Example
this.trtcCloud.muteRemoteAudio('denny', true);
Parameters:
Name Type Description
userId String

用户 ID

mute Boolean

true:静音;false:非静音

(static) muteAllRemoteAudio(mute)

静音掉所有用户的声音,同时不再拉取该远端用户的音频数据流

Example
this.trtcCloud.muteAllRemoteAudio(true);
Parameters:
Name Type Description
mute Boolean

true:静音;false:非静音

(static) setAudioRoute(route)

设置音频路由

设置“音频路由”,即设置声音是从手机的扬声器还是从听筒中播放出来,因此该接口仅适用于手机等移动端设备。 手机有两个扬声器:一个是位于手机顶部的听筒,一个是位于手机底部的立体声扬声器。 设置音频路由为听筒时,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。 设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。

Example
import { TRTCAudioRoute } from '@/TrtcCloud/lib/TrtcDefines';
this.trtcCloud.setAudioRoute(TRTCAudioRoute.TRTCAudioRouteSpeaker); // TRTCAudioRoute.TRTCAudioRouteEarpiece (听筒)
Parameters:
Name Type Description
route TRTCAudioRoute

音频路由,即声音由哪里输出(扬声器、听筒), 默认值:TRTCAudioRoute.TRTCAudioRouteSpeaker(扬声器),

(static) enableAudioVolumeEvaluation(interval)

启用或关闭音量大小提示

开启此功能后,SDK 会在 onUserVoiceVolume() 中反馈对每一路声音音量大小值的评估。

Note:

  • 如需打开此功能,请在 startLocalAudio 之前调用才可以生效。
Example
this.trtcCloud.enableAudioVolumeEvaluation(300);
Parameters:
Name Type Description
interval Number

设置 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms

(static) setSubStreamEncoderParam(param)

设置屏幕分享(即辅路)的视频编码参数

该接口可以设定远端用户所看到的屏幕分享(即辅路)的画面质量,同时也能决定云端录制出的视频文件中屏幕分享的画面质量。 请注意如下两个接口的差异:

  • setVideoEncoderParam 用于设置主路画面(TRTCVideoStreamTypeBig,一般用于摄像头)的视频编码参数。
  • setSubStreamEncoderParam 用于设置辅路画面(TRTCVideoStreamTypeSub,一般用于屏幕分享)的视频编码参数。

Note:

  • 即使您使用主路传输屏幕分享(在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig),依然要使用 setSubStreamEncoderParam 设定屏幕分享的编码参数,而不要使用 setVideoEncoderParam
Example
const params = {
  videoResolution: TRTCVideoResolution.TRTCVideoResolution_640_360,
  videoResolutionMode: TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait,
  videoFps: 15,
  videoBitrate: 900,
  minVideoBitrate: 200,
  enableAdjustRes: false,
};
this.trtcCloud.setSubStreamEncoderParam(params);
Parameters:
Name Type Description
param TRTCVideoEncParam

辅流编码参数,详情请参考 TRTCVideoEncParam。

(static) startScreenCapture(streamType, encParams, shareParams)

启动屏幕分享

Note:

  • 一个用户同时最多只能上传一条主路(TRTCVideoStreamTypeBig)画面和一条辅路(TRTCVideoStreamTypeSub)画面, 默认情况下,屏幕分享使用辅路画面,如果使用主路画面,建议您提前停止摄像头采集(stopLocalPreview)避免相互冲突。
  • 仅支持 iOS 13.0 及以上系统,进行应用内的屏幕分享
  • Android: UniApp 使用 SDK 内置的前台服务时,只需要将接口参数 enableForegroundService 设置为 true。
  • Android: UniApp 自己启动前台,需要在 mediaProject 类型的前台服务成功后再启动屏幕分享。
Example
import { TRTCVideoResolution, TRTCVideoResolutionMode, TRTCVideoStreamType} from '@/TrtcCloud/lib/TrtcDefines';
const encParams = {
  videoResolution: TRTCVideoResolution.TRTCVideoResolution_640_360,
  videoResolutionMode: TRTCVideoResolutionMode.TRTCVideoResolutionModePortrait,
  videoFps: 15,
  videoBitrate: 900,
  minVideoBitrate: 200,
  enableAdjustRes: false,
};
const shareParams = {
  enableForegroundService: true,
};
this.trtcCloud.startScreenCapture(TRTCVideoStreamType.TRTCVideoStreamTypeSub, encParams, shareParams);
Parameters:
Name Type Default Description
streamType Number

屏幕分享使用的线路,可以设置为主路(TRTCVideoStreamTypeBig)或者辅路(TRTCVideoStreamTypeSub),推荐使用

encParams TRTCVideoEncParam null

屏幕分享的画面编码参数,可以设置为 null,表示让 SDK 选择最佳的编码参数(分辨率、码率等)。即使在调用 startScreenCapture 时设置 type=TRTCVideoStreamTypeBig,依然可以使用此接口更新屏幕分享的编码参数。

shareParams TRTCScreenShareParams

您可以通过其中的 enableForegroundService 参数启用 SDK 内置的前台服务

(static) stopScreenCapture()

停止屏幕分享

Example
this.trtcCloud.stopScreenCapture();

(static) pauseScreenCapture()

暂停屏幕分享

Example
this.trtcCloud.pauseScreenCapture();

(static) resumeScreenCapture()

恢复屏幕分享

Example
this.trtcCloud.resumeScreenCapture();

(static) setBeautyStyle(beautyStyle)

设置美颜(磨皮)算法 TRTC 内置多种不同的磨皮算法,您可以选择最适合您产品定位的方案

Note:

  • 设置美颜前,先调用 setBeautyLevel 设置美颜级别。否则美颜级别为 0 表示关闭美颜
Example
import { TRTCBeautyStyle } from '@/TrtcCloud/lib/TrtcDefines';
const beautyLevel = 5; // 美颜级别,取值范围0 - 9; 0表示关闭,9表示效果最明显。
this.trtcCloud.setBeautyLevel(beautyLevel);
this.trtcCloud.setBeautyStyle(TRTCBeautyStyle.TRTCBeautyStyleSmooth);
Parameters:
Name Type Description
beautyStyle TRTCBeautyStyle

美颜风格,TRTCBeautyStyleSmooth:光滑;TRTCBeautyStyleNature:自然;TRTCBeautyStylePitu:优图

(static) setBeautyLevel(beautyLevel)

设置美颜级别

Example
const beautyLevel = 5; // 美颜级别,取值范围0 - 9; 0表示关闭,9表示效果最明显。
this.trtcCloud.setBeautyLevel(beautyLevel);
Parameters:
Name Type Description
beautyLevel Number

美颜级别,取值范围0 - 9; 0表示关闭,9表示效果最明显。

(static) startPlayMusic(musicParam)

开始播放背景音乐 每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。
Note:

  • 如果要多次播放同一首背景音乐,请不要每次播放都分配一个新的 ID,我们推荐使用相同的 ID。
  • 若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。
  • 如果使用同一个 ID 播放不同音乐,SDK 会先停止播放旧的音乐,再播放新的音乐。

Note:
在 uni-app 中 path 如何获取。

  • 使用 cdn 地址,例如:path = https://web.sdk.qcloud.com/component/TUIKit/assets/uni-app/calling-bell-1.mp3;
  • 使用本地绝对路径。
    1. 通过 uni.saveFile 获取保存后的相对路径(建议这种路径)。
    2. 将上一步的相对路径转成绝对路径,plus.io.convertLocalFileSystemURL
Example
import { AudioMusicParam } from '@/TrtcCloud/lib/TrtcDefines';
const musicParam = {
 id: 1,
 path: '',
 loopCount: 1,
 publish: true,
 isShortFile: false,
 startTimeMS: 0,
 endTimeMS: 0,
};
this.trtcCloud.startPlayMusic(musicParam);
Parameters:
Name Type Description
musicParam AudioMusicParam

音乐参数

Properties
Name Type Description
id Number

音乐 ID

path String

音效文件的完整路径或 URL 地址。支持的音频格式包括 MP3、AAC、M4A、WAV

loopCount Number

音乐循环播放的次数。取值范围为0 - 任意正整数,默认值:0。0表示播放音乐一次;1表示播放音乐两次;以此类推

publish Boolean

是否将音乐传到远端。true:音乐在本地播放的同时,远端用户也能听到该音乐;false:主播只能在本地听到该音乐,远端观众听不到。默认值:false。

isShortFile Boolean

播放的是否为短音乐文件。true:需要重复播放的短音乐文件;false:正常的音乐文件。默认值:false

startTimeMS Number

音乐开始播放时间点,单位: 毫秒。

endTimeMS Number

音乐结束播放时间点,单位: 毫秒,0 表示播放至文件结尾。

(static) stopPlayMusic(id)

停止播放背景音乐

Example
const musicId = 5;
this.trtcCloud.stopPlayMusic(musicId);
Parameters:
Name Type Description
id Number

音乐 ID

(static) pausePlayMusic(id)

暂停播放背景音乐

Example
const musicId = 5;
this.trtcCloud.pausePlayMusic(musicId);
Parameters:
Name Type Description
id Number

音乐 ID

(static) resumePlayMusic(id)

恢复播放背景音乐

Example
const musicId = 5;
this.trtcCloud.resumePlayMusic(musicId);
Parameters:
Name Type Description
id Number

音乐 ID