tencent_rtc_plugin 0.1.11

Flutter Android iOS

Tencent cloud real-time audio and video plug-in, integrated with Tencent RTC, supports Android and IOS dual terminals

tencent_rtc_plugin #

pub package

腾讯云实时音视频插件

功能清单 #

[x]房间相关接口函数
[x]视频相关接口函数
[x]音频相关接口函数
[x]摄像头相关函数
[ ]直播相关接口函数
[ ]美颜滤镜相关接口
[ ]自定义采集和渲染
[ ]自定义消息发送
[ ]背景混音相关接口
[ ]音效相关接口
[ ]网络测试
[ ]混流转码并发布到 CDN
[ ]Log相关接口
[ ]播放背景音乐的回调接口
[ ]视图边距
[x]回调事件
[ ]枚举类型同步(大改动)
[ ]数据对象同步(大改动)

Getting Started #

该插件基于腾讯音视频通话进行集成。
引用腾讯官方文档原文:在 defaultConfig 中,指定 App 使用的 CPU 架构(目前 TRTC SDK 支持 armeabi , armeabi-v7a 和 arm64-v8a) 。
如果出现闪退问题,请检查是否是系统架构导致
注意:部分接口未在Flutter层次实现枚举,请注意int类参数,参考腾讯云文档结合使用

集成 #

Flutter #

tencent_rtc_plugin: ^[最新版本号]

Android #

无需额外配置,已内部打入混淆规则

IOS #

配置权限信息,在Info.plist中增加

<key>io.flutter.embedded_views_preview</key>
<true/>
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问摄像头</string>

功能清单 #

通用接口(TencentRtcPlugin) #

接口说明参数AndroidIOS
showDebugView启用Debug视图【注意:目前版本IOS暂不支持】{mode:'模式,0,1,2'}-
setConsoleEnabled启用日志打印{enabled:'是否启用'}
enterRoom进入房间{appid:'应用appid',userId:'用户ID',userSig:'用户签名',roomId:'房间号',scene:'应用场景',role:'角色',privateMapKey:'房间签名'}
exitRoom退出房间-
switchRole切换角色{role:'角色'}
setDefaultStreamRecvMode设置音视频数据接收模式(需要在进房前设置才能生效)。{autoRecvAudio:'自动接收音频数据',autoRecvVideo:'自动接收视频数据'}
muteRemoteAudio静音 / 取消静音{userId:'用户ID',mute:'是否静音'}
muteAllRemoteAudio静音 / 取消静音 所有用户{mute:'是否静音'}
setRemoteViewFillMode设置远程显示填充模式{userId:'用户ID',mode:'模式'}
setLocalViewFillMode设置本地显示填充模式{mode:'模式'}
startLocalAudio开启本地音频采集-
stopLocalAudio关闭本地音频采集-
stopAllRemoteView停止显示所有远端视频画面。-
muteRemoteVideoStream暂停接收指定的远端视频流。{userId:'用户ID',mute:'是否禁止'}
muteAllRemoteVideoStreams停止接收所有远端视频流。{mute:'是否禁止'}
setVideoEncoderParam设置视频编码相关。{param:'视频编码参数'}
setNetworkQosParam设置网络流控相关参数。{preference:'弱网下是“保清晰”还是“保流畅”。',controlMode:'视频分辨率(云端控制 - 客户端控制)'}
setLocalViewRotation设置本地图像的顺时针旋转角度。{rotation:'角度枚举值下标(参考腾讯云)'}
setRemoteViewRotation设置远端图像的顺时针旋转角度。{userId:'用户ID',rotation:'角度枚举值下标(参考腾讯云)'}
setVideoEncoderRotation设置视频编码输出的(也就是远端用户观看到的,以及服务器录制下来的)画面方向。{rotation:'腾讯云枚举'}
setLocalViewMirror设置本地摄像头预览画面的镜像模式。{mirrorType:''腾讯云枚举}
setVideoEncoderMirror设置编码器输出的画面镜像模式。{mirror:'编码器输出的画面镜像模式'}
setGSensorMode设置重力感应的适应模式。{mode:'腾讯云枚举'}
enableEncSmallVideoStream开启大小画面双路编码模式。{enable:'是否启用',smallVideoEncParam:'模式参数'}
setRemoteVideoStreamType选定观看指定 uid 的大画面或小画面。{userId:'用户ID',streamType:'类型'}
setPriorRemoteVideoStreamType设定观看方优先选择的视频质量。{streamType:'类型'}
muteLocalAudio静音本地的音频。{mute:'是否静音'}
muteLocalVideo关闭本地视频。{mute:'是否关闭'}
setAudioRoute设置音频路由。{route:'模式'}
enableAudioVolumeEvaluation启用音量大小提示。{intervalMs:'决定了 onUserVoiceVolume 回调的触发间隔,单位为ms,最小间隔为100ms,如果小于等于0则会关闭回调,建议设置为300ms;详细的回调规则请参考 onUserVoiceVolume 的注释说明。'}
startAudioRecording开始录音。{filePath:'文件路径'}
stopAudioRecording停止录音。-
setSystemVolumeType设置通话时使用的系统音量类型。{type:'类型'}
enableAudioEarMonitoring开启耳返。{enable:'是否启用'}
switchCamera切换摄像头。-
isCameraZoomSupported查询当前摄像头是否支持缩放。-
setZoom设置摄像头缩放因子(焦距)。{distance:'焦距'}
isCameraTorchSupported查询是否支持开关闪光灯(手电筒模式)。-
enableTorch开启闪光灯{enable:'启用闪光灯'}
isCameraFocusPositionInPreviewSupported查询是否支持设置焦点-
setFocusPosition设置摄像头焦点{x:'',y:''}
isCameraAutoFocusFaceModeSupported查询是否支持自动识别人脸位置-

视图组件(TencentRtcVideoView) #

使用例子:

/// 本地预览:
TencentRtcVideoView(
    onViewCreated: (controller) {
        PermissionHandler().requestPermissions([PermissionGroup.camera]).then((res) {
        if (res[PermissionGroup.camera] != PermissionStatus.disabled) {
          controller.startLocalPreview(frontCamera: false);
        }
      });
    },
),

/// ...................

/// 远程预览:
TencentRtcVideoView(
    onViewCreated: (controller){
        controller.startRemoteView(userId: '用户ID');
    },
)

相关接口:(TencentRtcVideoViewController调用方法)

接口说明参数AndroidIOS
startRemoteView开启远程显示{userId:'用户ID'}
stopRemoteView停止远程显示{userId:'用户ID'}
startLocalPreview开启本地视频采集{frontCamera:'是否前置摄像头'}
stopLocalPreview停止本地视频采集-

使用 #

大部分方法直接基于腾讯云原始API,根据 TencentRtcPlugin 对象即可使用;部分视频相关内容,TencentRtcVideoView 需要配合 TencentRtcVideoViewControlle调用方法;
例如进入房间只需要调用TencentRtcPlugin.enterRoom()即可,腾讯API文档地址:https://cloud.tencent.com/document/product/647/32264

0
likes
90
pub points
47%
popularity

Tencent cloud real-time audio and video plug-in, integrated with Tencent RTC, supports Android and IOS dual terminals

Repository (GitHub)
View/report issues

Documentation

API reference

Uploader

690717394@qq.com

License

Apache 2.0 (LICENSE)

Dependencies

flutter

More

Packages that depend on tencent_rtc_plugin