简体中文 | English
TRTC SDK(Flutter)
演示如何使用Flutter的RTC API。API示例
注意:Demo不支持模拟器操作。请使用真机进行开发和调试。
Demo快速启动
SDK快速集成
SDK类文件
trtc_cloud
- 腾讯云TRTC核心功能接口。trtc_cloud_video_view
- 提供渲染视频TRTCCloudVideoView
的小部件。tx_audio_effect_manager
- 腾讯云音频效果管理模块。tx_beauty_manager
- 美颜滤镜和动画效果参数管理。tx_device_manager
- 腾讯云音频效果管理模块。trtc_cloud_def
- TRTC关键类定义说明:接口和常量值如分辨率和质量级别的定义trtc_cloud_listener
- 腾讯云TRTC事件通知接口。
调用示例
1.初始化
// 创建 TRTCCloud 单例
trtcCloud = await TRTCCloud.sharedInstance();
// 获取设备管理模块
txDeviceManager = trtcCloud.getDeviceManager();
// 获取美颜管理对象
txBeautyManager = trtcCloud.getBeautyManager();
// 获取音效管理类
txAudioManager = trtcCloud.getAudioEffectManager();
2.进退房
//进入音视频房间
trtcCloud.enterRoom(
TRTCParams(
sdkAppId: sdkAppId, //应用Id
userId: userId, // 用户Id
userSig: userSig, // 用户签名
roomId: roomId), //房间Id
TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL);
//退出音视频房间
trtcCloud.exitRoom();
3.事件监听
//设置事件监听
trtcCloud.registerListener(onRtcListener);
onRtcListener(type, param) {
//进房回调事件
if (type == TRTCCloudListener.onEnterRoom) {
if (param > 0) {
showToast('进房成功');
}
}
// 远端用户进房
if (type == TRTCCloudListener.onRemoteUserEnterRoom) {
//param参数为远端用户userId
}
//远端用户是否存在可播放的主路画面(一般用于摄像头)
if (type == TRTCCloudListener.onUserVideoAvailable) {
//param['userId']表示远端用户id
//param['visible']画面是否开启
}
}
//移除事件监听
trtcCloud.unRegisterListener(onRtcListener);
4.显示本地视频
// 参数:
// frontCamera true:前置摄像头;false:后置摄像头
// viewId TRTCCloudVideoView生成的viewId
TRTCCloudVideoView(
onViewCreated: (viewId) {
trtcCloud.startLocalPreview(true, viewId);
});
5.显示远端视频
// 参数:
// userId 指定远端用户的 userId
// streamType 指定要观看 userId 的视频流类型:
//* 高清大画面:TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG
//* 低清大画面:TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_SMALL
// viewId TRTCCloudVideoView生成的viewId
TRTCCloudVideoView(
onViewCreated: (viewId) {
trtcCloud.startRemoteView(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_SMALL, viewId);
});
5.显示远端屏幕分享
/// 参数:
/// userId 指定远端用户的 userId
/// streamType 指定要观看 userId 的视频流类型:
///* 辅流(屏幕分享):TRTCCloudDe.TRTC_VIDEO_STREAM_TYPE_SUB
/// viewId TRTCCloudVideoView生成的viewId
TRTCCloudVideoView(
onViewCreated: (viewId) {
trtcCloud.startRemoteView(userId, TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_SUB, viewId);
});
如何查看trtc日志?
TRTC日志默认使用XLOG扩展名进行压缩和加密。您可以设置setLogCompressEnabled来指定是否加密日志。如果日志文件名包含C(压缩),则日志被压缩和加密;如果包含R(原始),则日志为明文。
- iOS:应用程序沙箱中的Documents/log
- Android
- 6.7或以下版本:/sdcard/log/tencent/liteav
- 6.8或以上版本:/sdcard/Android/data/package name/files/log/tencent/liteav/
常见问题
IOS无法显示视频(Android正常)
请确认您的info.plist中的io.flutter.embedded_views_preview设置为YES
Android Manifest合并失败
请打开'/example/android/app/src/main/AndroidManifest.xml'文件。
1.在manifest中添加xmlns:tools="http://schemas.android.com/tools"
2.在application中添加tools:replace="android:label"