trtc-react-native
TypeScript icon, indicating that this package has built-in type declarations

2.4.3 • Public • Published

该SDK已经不再维护,请选择使用其它平台的SDK,如Flutter

该 React Native SDK 是基于 腾讯云 iOS/Android 平台的 SDK 进行封装,目前已支持音视频通话。

文档指引

快速跑通 Demo 文档快速集成 SDK

API 详细文档-中文API 详细文档-英文

SDK 类文件说明

  • trtc_cloud - 腾讯云视频通话功能的主要接口类
  • tx_video_view - 视频渲染 view
  • tx_beauty_manager - 美颜管理类
  • tx_audio_effect_manager - 腾讯云音视频通话功能音乐和人声设置接口
  • tx_device_manager - 设备管理类
  • trtc_cloud_def - 腾讯云音视频通话功能的关键类型定义
  • trtc_cloud_listener - 腾讯云音视频通话功能的事件回调监听接口

调用示例

  1. 初始化

    // 创建 TRTCCloud 单例
    const trtcCloud = TRTCCloud.sharedInstance();
    // 获取设备管理模块
    const txDeviceManager = trtcCloud.getDeviceManager();
    // 获取音效管理类
    const txAudioManager = trtcCloud.getAudioEffectManager();
    // 获取美颜管理类
    const txBeautyManager = trtcCloud.getBeautyManager();
  2. 进退房

    const params = new TRTCParams({
      sdkAppId: SDKAPPID, // 应用 ID
      userId, // 用户 ID
      userSig, // 用户签名
      roomId: 2366, // 房间 ID
    });
    // 进房
    trtcCloud.enterRoom(params, TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL);
    // 退房
    trtcCloud.exitRoom();
  3. 事件监听

    // 设置事件监听
    trtcCloud.registerListener(onRtcListener);
    
    function onRtcListener(type: TRTCCloudListener, params: any) {
      // 进房回调事件
      if (type === TRTCCloudListener.onEnterRoom) {
        if (params.result > 0) {
          // 进房成功
        }
      }
      // 远端用户进房
      if (type === TRTCCloudListener.onRemoteUserEnterRoom) {
        // params.userId 参数为远端用户 userId
      }
      // 远端用户是否打开麦克风
      if (type === TRTCCloudListener.onUserAudioAvailable) {
        // param.userId 表示远端用户 userId
        // param.visible true 表示打开麦克风
      }
    }
    // 移除事件监听
    trtcCloud.unRegisterListener(onRtcListener);
  4. 显示本地视频

    <TXVideoView.LocalView />
  5. 显示远端视频

    <TXVideoView.RemoteView
      userId={remoteUserId}
      streamType={TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG}
    />
  6. 显示远端屏幕分享

    <TXVideoView.RemoteView
      userId={remoteUserId}
      streamType={TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_SUB}
    />

Android 接入环境说明

根据官网文档指引搭建 Android 开发环境。文档指引

注意:Android 仅支持真机调试

配置 App 权限

  1. AndroidManifest.xml 中配置 App 的权限,TRTC SDK 需要以下权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

    ! 请勿设置 android:hardwareAccelerated="false",关闭硬件加速之后,会导致对方的视频流无法渲染。

  2. 安卓音视频权限需要手动申请:

    // 安卓音视频权限需要手动申请
    if (Platform.OS === 'android') {
      await PermissionsAndroid.requestMultiple([
        PermissionsAndroid.PERMISSIONS.RECORD_AUDIO, // 音频需要
        PermissionsAndroid.PERMISSIONS.CAMERA, // 视频需要
      ]);
    }

Android 开发调试

  1. 在 Demo 目录下启动 Metro

    npx react-native start
  2. 在 Demo 目录下新开窗口,启动开发调试

    npx react-native run-android

iOS 接入环境说明

根据官网文档指引搭建 iOS 开发环境。文档指引

配置 App 权限

  1. Info.plist 中配置 App 的权限,TRTC SDK 需要以下权限:

    <key>NSCameraUsageDescription</key>
    <string>授权摄像头权限才能正常视频通话</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>授权麦克风权限才能正常语音通话</string>

iOS 开发调试

  1. 在 Demo ios 目录里安装依赖

    pod install
  2. 在 Demo 目录下启动 Metro

    npx react-native start
  3. 在 Demo 目录下新开窗口,启动开发调试

    npx react-native run-ios

Package Sidebar

Install

npm i trtc-react-native

Weekly Downloads

9

Version

2.4.3

License

MIT

Unpacked Size

1.04 MB

Total Files

149

Last publish

Collaborators

  • c1avie