TRTCMeeting API(Flutter)
TRTCMeeting 是基于腾讯云实时音视频(TRTC)和即时通信 IM 服务组合而成的,支持以下功能:
主持人创建会议房间,参会人员输入房间号后进入会议。
参会人员之间进行屏幕分享。
支持发送各种文本消息和自定义消息。
说明:
TUIKit 系列组件同时使用了腾讯云 实时音视频 TRTC 和 即时通信 IM 两个基础 PaaS 服务,开通实时音视频后会同步开通即时通信IM服务。即时通信 IM 服务详细计费规则请参见 即时通信 - 价格说明,TRTC 开通会默认关联开通 IM SDK 的体验版,仅支持100个 DAU。
TRTC SDK:使用 TRTC SDK 作为低延时视频会议组件。
IM SDK:使用 IM SDK 的 MeetingRoom 实现会议中聊天室的功能。
TRTCMeeting API 概览
SDK 基础接口
API | 描述 |
获取单例对象。 | |
销毁单例对象。 | |
设置事件监听。 | |
销毁事件监听。 | |
登录。 | |
登出。 | |
修改个人信息。 |
会议房间相关接口
API | 描述 |
创建会议房间(主持人调用)。 | |
销毁会议房间(主持人调用)。 | |
进入会议房间(参会成员调用)。 | |
离开会议房间(参会成员调用)。 | |
获取房间内所有的人员列表,enterMeeting()成功后调用才有效。 | |
获取房间内指定人员的详细信息,enterMeeting()成功后调用才有效。 |
远端用户相关接口
API | 描述 |
播放指定成员的远端视频画面。 | |
停止播放指定成员的远端视频画面。 | |
设置指定成员的远端图像渲染参数。 | |
静音/取消静音指定成员的远端音频。 | |
静音/取消静音所有成员的远端音频。 | |
暂停/恢复指定成员的远端视频。 | |
暂停/恢复所有成员的远端视频流。 |
本地视频操作接口
API | 描述 |
开启本地视频的预览画面。 | |
停止本地视频采集及预览。 | |
切换前后摄像头。 | |
设置视频编码器相关参数。 | |
设置本地画面镜像预览模式。 |
本地音频操作接口
API | 描述 |
开启麦克风采集。 | |
停止麦克风采集。 | |
开启/关闭本地静音。 | |
设置开启扬声器或听筒。 | |
设置麦克风采集音量。 | |
设置播放音量。 | |
开始录音。 | |
停止录音。 | |
启用音量大小提示。 |
录屏接口
API | 描述 |
启动屏幕分享。 | |
停止屏幕采集。 | |
暂停屏幕采集。 | |
恢复屏幕采集。 |
获取相关管理对象接口
API | 描述 |
消息发送相关接口
API | 描述 |
在会议中广播文本消息,一般用于聊天。 | |
发送自定义文本消息。 |
TRTCLiveRoomDelegate API 概览
通用事件回调
API | 描述 |
错误回调。 | |
警告回调。 | |
其他用户登录了同一账号,被踢下线。 |
会议房间事件回调
API | 描述 |
会议房间被销毁的回调。 | |
网络状态回调。 | |
用户通话音量回调。 |
成员进出事件回调
API | 描述 |
本地进会回调。 | |
本地退会回调。 | |
新成员进会回调。 | |
成员退会回调。 |
成员音视频事件回调
API | 描述 |
成员开启/关闭麦克风的回调。 | |
成员开启/关闭摄像头的回调。 | |
成员开启/关闭辅路画面的回调。 |
消息事件回调
API | 描述 |
收到文本消息的回调。 | |
收到自定义消息的回调。 |
录屏事件回调
API | 描述 |
录屏开始回调。 | |
录屏暂停回调。 | |
录屏恢复回调。 | |
录屏停止回调。 |
SDK 基础接口
sharedInstance
static Future<TRTCMeeting> sharedInstance();
destroySharedInstance
static void destroySharedInstance();
说明:
registerListener
void registerListener(MeetingListenerFunc func);
说明:
func 是 TRTCMeeting 的代理回调。
unRegisterListener
销毁事件监听。
void unRegisterListener(MeetingListenerFunc func);
login
登录。
Future<ActionCallback> login(int sdkAppId, String userId, String userSig);
参数如下表所示:
参数 | 类型 | 含义 |
sdkAppId | int | |
userId | String | 当前用户的 ID,字符串类型,只允许包含英文字母(a-z 和 A-Z)、数字(0-9)、连词符(-)和下划线(_)。 |
userSig | String |
logout
登出。
Future<ActionCallback> logout();
setSelfProfile
修改个人信息。
Future<ActionCallback> setSelfProfile(String userName, String avatarURL);
参数如下表所示:
参数 | 类型 | 含义 |
userName | String | 用户昵称。 |
avatarURL | String | 用户头像地址。 |
会议房间相关接口
createMeeting
创建会议(主持人调用)。
Future<ActionCallback> createMeeting(int roomId);
参数如下表所示:
参数 | 类型 | 含义 |
roomId | int | 会议房间标识,需要由您分配并进行统一管理。 |
主持人正常调用流程如下:
1. 【主持人】调用
createMeeting()
并传入 roomId
创建会议,会议房间创建成功与否会通过 ActionCallback
通知给主持人。 2. 【主持人】调用
startCameraPreview()
打开摄像头预览,此时可以调整美颜参数。3. 【主持人】调用
startMicrophone()
打开麦克风采集。destroyMeeting
销毁会议房间(主持人调用)。主持人在创建会议后,可以调用该函数来销毁会议。
Future<ActionCallback> destroyMeeting(int roomId);
参数如下表所示:
参数 | 类型 | 含义 |
roomId | int | 会议房间标识,需要由您分配并进行统一管理。 |
enterMeeting
进入会议房间(参会成员调用)。
Future<ActionCallback> enterMeeting(int roomId);
参数如下表所示:
参数 | 类型 | 含义 |
roomId | int | 会议房间标识。 |
参会成员进入会议的正常调用流程如下:
1. 【参会成员】调用
enterMeeting()
并传入 roomId
即可进入会议房间。2. 【参会成员】调用
startCameraPreview()
打开摄像头预览,调用 startMicrophone()
打开麦克风采集。3. 【参会成员】收到
onUserVideoAvailable
的事件,调用 startRemoteView()
并传入成员的 userId
开始播放。leaveMeeting
离开会议房间(参会成员调用)。
Future<ActionCallback> leaveMeeting();
getUserInfoList
获取房间内所有的人员列表,enterMeeting()成功后调用才有效。
Future<UserListCallback> getUserInfoList(List<String> userIdList);
参数如下表所示:
参数 | 类型 | 含义 |
userIdList | List<String> | 需要获取的 userId 列表。 |
getUserInfo
获取房间内指定人员的详细信息,enterMeeting()成功后调用才有效。
Future<UserListCallback> getUserInfo(String userId);
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 指定成员的 ID。 |
远端用户相关接口
startRemoteView
播放指定成员的远端视频画面。
Future<void> startRemoteView(String userId, int streamType, int viewId);
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 指定成员的 ID。 |
streamType | int | |
viewId | int | TRTCCloudVideoView 生成的 viewId。 |
stopRemoteView
停止播放指定成员的远端视频画面。
Future<void> stopRemoteView(String userId, int streamType);
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 指定成员的 ID。 |
streamType | int |
setRemoteViewParam
设置指定成员的远端图像渲染参数。
Future<void> setRemoteViewParam(String userId, int streamType,{int fillMode, int rotation, int mirrorType});
参数如下表所示:
muteRemoteAudio
静音/取消静音指定成员的远端音频。
Future<void> muteRemoteAudio(String userId, bool mute);
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 指定成员的 ID。 |
mute | boolean | true:静音;false:关闭静音。 |
muteAllRemoteAudio
静音/取消静音所有成员的远端音频。
Future<void> muteAllRemoteAudio(bool mute);
参数如下表所示:
参数 | 类型 | 含义 |
mute | boolean | true:静音;false:关闭静音。 |
muteRemoteVideoStream
暂停/恢复指定成员的远端视频。
Future<void> muteRemoteVideoStream(String userId, bool mute);
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 指定成员的 ID。 |
mute | boolean | true:暂停;false:恢复。 |
muteAllRemoteVideoStream
暂停/恢复所有成员的远端视频流。
Future<void> muteAllRemoteVideoStream(bool mute);
参数如下表所示:
参数 | 类型 | 含义 |
mute | boolean | true:暂停;false:恢复。 |
本地视频操作接口
startCameraPreview
开启本地视频的预览画面。
Future<void> startCameraPreview(bool isFront, int viewId);
参数如下表所示:
参数 | 类型 | 含义 |
isFront | boolean | true:前置摄像头;false:后置摄像头。 |
viewId | int | TRTCCloudVideoView 生成的 viewId。 |
stopCameraPreview
停止本地视频采集及预览。
Future<void> stopCameraPreview();
switchCamera
切换前后摄像头。
Future<void> switchCamera(bool isFront);
参数如下表所示:
参数 | 类型 | 含义 |
isFront | boolean | true:前置摄像头;false:后置摄像头。 |
setVideoEncoderParam
设置视频编码器相关参数。
Future<void> setVideoEncoderParam({int videoFps,int videoBitrate,int videoResolution,int videoResolutionMode,});
参数如下表所示:
参数 | 类型 | 含义 |
videoFps | int | 视频采集帧率。 |
videoBitrate | int | 码率,SDK 会按照目标码率进行编码,只有在网络不佳的情况下才会主动降低视频码率。 |
videoResolution | int | 视频分辨率。 |
videoResolutionMode | int | 分辨率模式。 |
说明:
setLocalViewMirror
设置本地画面镜像预览模式。
Future<void> setLocalViewMirror(bool isMirror);
参数如下表所示:
参数 | 类型 | 含义 |
isMirror | boolean | 是否开启镜像预览模式,true:开启;false:不开启。 |
本地音频操作接口
startMicrophone
开启麦克风采集。
Future<void> startMicrophone({int quality});
参数如下表所示:
参数 | 类型 | 含义 |
quality | int |
stopMicrophone
停止麦克风采集。
Future<void> stopMicrophone();
muteLocalAudio
开启/关闭本地静音。
Future<void> muteLocalAudio(bool mute);
参数如下表所示:
参数 | 类型 | 含义 |
mute | boolean | true:静音;false:取消静音。 |
setSpeaker
设置开启扬声器或听筒。
Future<void> setSpeaker(bool useSpeaker);
参数如下表所示:
参数 | 类型 | 含义 |
useSpeaker | boolean | true:扬声器;false:听筒。 |
setAudioCaptureVolume
设置麦克风采集音量。
Future<void> setAudioCaptureVolume(int volume);
参数如下表所示:
参数 | 类型 | 含义 |
volume | int | 采集音量,取值0 - 100,默认值为100。 |
setAudioPlayoutVolume
设置播放音量。
Future<void> setAudioPlayoutVolume(int volume);
参数如下表所示:
参数 | 类型 | 含义 |
volume | int | 播放音量,取值0 - 100,默认值100。 |
startAudioRecording
开始录音。
Future<int?> startAudioRecording(String filePath);
参数如下表所示:
参数 | 类型 | 含义 |
filePath | String | 录音文件的保存路径,该路径需要用户自行指定,请确保路径存在且可写。该路径需精确到文件名及格式后缀,格式后缀决定录音文件的格式,目前支持的格式有 PCM、WAV 和 AAC。 |
stopAudioRecording
停止录音。
Future<void> stopAudioRecording();
enableAudioVolumeEvaluation
启用音量大小提示。
Future<void> enableAudioVolumeEvaluation(int intervalMs);
参数如下表所示:
参数 | 类型 | 含义 |
intervalMs | int | 决定了 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms。 |
录屏接口
startScreenCapture
启动屏幕分享。
Future<void> startScreenCapture({int videoFps,int videoBitrate,int videoResolution,int videoResolutionMode,String appGroup,});
参数如下表所示:
参数 | 类型 | 含义 |
videoFps | int | 视频采集帧率。 |
videoBitrate | int | 码率,SDK 会按照目标码率进行编码,只有在网络不佳的情况下才会主动降低视频码率。 |
videoResolution | int | 视频分辨率。 |
videoResolutionMode | int | 分辨率模式。 |
appGroup | String | 该参数仅仅在iOS端有效,Android端不需要关注这个参数。该参数是主 App 与 Broadcast 共享的 Application Group Identifier。 |
说明:
stopScreenCapture
停止屏幕采集。
Future<void> stopScreenCapture();
pauseScreenCapture
暂停屏幕采集。
Future<void> pauseScreenCapture();
resumeScreenCapture
恢复屏幕采集。
Future<void> resumeScreenCapture();
获取相关管理对象接口
getDeviceManager
getDeviceManager();
getBeautyManager
getBeautyManager();
通过美颜管理,您可以使用以下功能:
设置“美颜风格”、“美白”、“红润”、“大眼”、“瘦脸”、“V脸”、“下巴”、“短脸”、“小鼻”、“亮眼”、“白牙”、“祛眼袋”、“祛皱纹”、“祛法令纹”等美容效果。
调整“发际线”、“眼间距”、“眼角”、“嘴形”、“鼻翼”、“鼻子位置”、“嘴唇厚度”、“脸型”。
设置人脸挂件(素材)等动态效果。
添加美妆。
进行手势识别。
消息发送相关接口
sendRoomTextMsg
在会议中广播文本消息,一般用于聊天。
Future<ActionCallback> sendRoomTextMsg(String message);
参数如下表所示:
参数 | 类型 | 含义 |
message | String | 文本消息。 |
sendRoomCustomMsg
发送自定义文本消息。
Future<ActionCallback> sendRoomCustomMsg(String cmd, String message);
参数如下表所示:
参数 | 类型 | 含义 |
cmd | String | 命令字,由开发者自定义,主要用于区分不同消息类型。 |
message | String | 文本消息。 |
TRTCMeetingDelegate事件回调
通用事件回调
onError
错误回调。
说明:
SDK 不可恢复的错误,一定要监听,并分情况给用户适当的界面提示。
参数如下表所示:
参数 | 类型 | 含义 |
errCode | int | 错误码。 |
errMsg | String | 错误信息。 |
extraInfo | String | 扩展信息字段,个别错误码可能会带额外的信息帮助定位问题。 |
onWarning
警告回调。
参数如下表所示:
参数 | 类型 | 含义 |
warningCode | int | 错误码。 |
warningMsg | String | 警告信息。 |
extraInfo | String | 扩展信息字段,个别错误码可能会带额外的信息帮助定位问题。 |
onKickedOffline
其他用户登录了同一账号,被踢下线。
会议房间事件回调
onRoomDestroy
会议房间被销毁的回调。主持人退房时,房间内的所有用户都会收到此通知。
参数如下表所示:
参数 | 类型 | 含义 |
roomId | String | 会议房间 ID。 |
onNetworkQuality
网络状态回调。
参数如下表所示:
参数 | 类型 | 含义 |
localQuality | TRTCCloudDef.TRTCQuality | 上行网络质量。 |
remoteQuality | List<TRTCCloudDef.TRTCQuality> | 下行网络质量。 |
onUserVolumeUpdate
用户通话音量回调。
参数如下表所示:
参数 | 类型 | 含义 |
userVolumes | List | 所有正在说话的成员的音量,取值范围0 - 100。 |
totalVolume | int | 所有远端成员的总音量, 取值范围0 - 100。 |
成员进出事件回调
onEnterRoom
本地进会回调。
参数如下表所示:
参数 | 类型 | 含义 |
result | int | 大于0时为进会耗时(ms),小于0时为进会错误码。 |
onLeaveRoom
本地退会回调。
参数如下表所示:
参数 | 类型 | 含义 |
reason | int | 离开会议原因,0:主动调用 leaveMeeting 退会;1:被服务器踢出当前会议;2:当前会议整个被解散。 |
onUserEnterRoom
新成员进会回调。
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 新进会成员的用户 ID。 |
onUserLeaveRoom
成员退会回调。
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 退会成员的用户 ID。 |
成员音视频事件回调
onUserAudioAvailable
成员开启/关闭麦克风的回调。
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID。 |
available | boolean | true:用户打开麦克风;false:用户关闭麦克风。 |
onUserVideoAvailable
成员开启/关闭摄像头的回调。
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID。 |
available | boolean | true:用户打开摄像头;false:用户关闭摄像头。 |
onUserSubStreamAvailable
成员开启/关闭辅路画面的回调。
参数如下表所示:
参数 | 类型 | 含义 |
userId | String | 用户 ID。 |
available | boolean | true:用户打开辅路画面;false:用户关闭辅路画面。 |
消息事件回调
onRecvRoomTextMsg
收到文本消息的回调。
参数如下表所示:
参数 | 类型 | 含义 |
message | String | 文本消息。 |
sendId | String | 发送者用户 ID。 |
userAvatar | String | 发送者用户头像。 |
userName | String | 发送者用户昵称。 |
onRecvRoomCustomMsg
收到自定义消息的回调。
参数如下表所示:
参数 | 类型 | 含义 |
command | String | 命令字,由开发者自定义,主要用于区分不同消息类型。 |
message | String | 文本消息。 |
sendId | String | 发送者用户 ID。 |
userAvatar | String | 发送者用户头像。 |
userName | String | 发送者用户昵称。 |
录屏事件回调
onScreenCaptureStarted
录屏开始回调。
onScreenCapturePaused
录屏暂停回调。
onScreenCaptureResumed
录屏恢复回调。
onScreenCaptureStoped
录屏停止回调。
参数如下表所示:
参数 | 类型 | 含义 |
reason | int | 停止原因,0:用户主动停止;1:屏幕窗口关闭导致停止。 |