简体中文 | English

TRTC SDK(Flutter)

API概览

演示如何使用Flutter的RTC API。API示例

注意:Demo不支持模拟器操作。请使用真机进行开发和调试。

Demo快速启动

请参见Demo快速启动(Flutter)

SDK快速集成

请参见快速集成(Flutter)

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"

Libraries

trtc_cloud
trtc_cloud_def
trtc_cloud_listener
trtc_cloud_video_view
tx_audio_effect_manager
tx_beauty_manager
tx_device_manager