## 腾讯 tencent_trtc_cloud

English document 日本語の文書

该flutter sdk是基于 腾讯云 iOS/Android/Windows/MacOs 平台的 SDK进行封装。

注意：目前Windows/MacOs已经支持音视频通话，暂不支持屏幕分享

注意：demo不支持模拟机运行，请使用真机开发调试。

API 概览-中文，API 详细文档-中文

API OverView-English，API Detailed documentation-English

多人视频会议DEMO地址 Github。

一对一音视频通话、语音沙龙、互动直播DEMO地址 Github。

任何问题可以通过 Github Issues 提问，也可加qq群788910197咨询。

#### 快速跑通Demo

详情参考跑通Demo(Flutter)

#### 快速集成SDK

详情参考快速集成(Flutter)

#### sdk类文件说明

- trtc_cloud-腾讯云视频通话功能的主要接口类
- trtc_cloud_video_view-提供渲染视频TRTCCloudVideoView的widget
- tx_audio_effect_manager-腾讯云视频通话功能音乐和人声设置接口
- tx_beauty_manager-美颜及动效参数管理
- tx_device_manager-设备管理类
- trtc_cloud_def-腾讯云视频通话功能的关键类型定义
- trtc_cloud_listener-腾讯云视频通话功能的事件回调监听接口

#### 调用示例

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。

- iOS：sandbox的Documents/log
- Android
  - 6.7及之前的版本：/sdcard/log/tencent/liteav
  - 6.8之后的版本：/sdcard/Android/data/包名/files/log/tencent/liteav/

#### 常见问题

更多常见问题参考文档

##### iOS无法显示视频（Android是好的）

请确认 io.flutter.embedded_views_preview为`YES`在你的info.plist中

##### Android Manifest merge failed编译失败

请打开/example/android/app/src/main/AndroidManifest.xml文件。

1.将xmlns:tools="http://schemas.android.com/tools" 加入到manifest中

2.将tools:replace="android:label"加入到application中。

## Libraries

trtc_cloud
trtc_cloud_def
trtc_cloud_listener
trtc_cloud_video_view
tx_audio_effect_manager
tx_beauty_manager
tx_device_manager