MRTC-Flutter-SDK-api
优质
小牛编辑
127浏览
2023-12-01
目录
接入指南
添加依赖 在
pubspec.yaml
文件中添加对MRTC
的依赖如下:dependencies: flutter: sdk: flutter mrtc_flutter: ^1.0.0
然后执行
flutter packages get
即可拉取此库如何使用 在需要使用到推拉流服务的.dart文件中加入
import 'package:mrtc_flutter/mrtc_flutter.dart';
即可开始编码
注意事项
- 当再使用推拉流时应调用destory函数释放内存
- 使用此SDK时应在iOS工程的info.plist中添加配置
io.flutter.embedded_views_preview = YES
- 尽量复用创建的nativeView,因为目前Flutter存在bug,会造成内存泄漏
- 低版本flutter SDK iOS端首屏会出现花屏,触发一次setState()重新绘制后会恢复正常,升级flutter SDK可以解决
- Mrtc.createNativeView返回的Widget放在渲染树上后才会真正的创建nativeView触发回调
MRTC类介绍
MRTC
类主要作用MRTC推拉流来创建MRTCPusher
、MRTCPuller
和NativeView
,并负责了MRTCEngine的初始化和资源的销毁。
api使用方法如下:
//初始化MRTC
MRTC.init();
//销毁MRTC资源
MRTC.destory();
//创建MRTCPusher(请忽用new的方式创建MRTCPusher)
MRTCPusher pusher = await MRTC.createNativePusher(setting);
//创建MRTCPuller(请忽用new的方式创建MRTCPuller)
MRTCPuller puller = await MRTC.createNativePuller();
//创建渲染组件
Widget renderer = MRTC.createNativeView((int viewId){
});
MRTCPusher类介绍
MRTCPusher
类负责进行推流操作
api使用方法如下:
//设置推流消息回调
pusher.setCallback(
//推流成功回调
onConnect:(){
},
//推流断开回调
onDisconnect:(){
},
//推流失败回调并抛出错误
onFailed:(int errCode,String errStr){
},
//负责报告推流过程中产生的错误
onError:(int errCode,String errStr){
},
);
//开始自己摄像头的画面预览(参数是craeteNativeView中回调的viewId)
pusher.startPreview(viewId);
//停止预览
pusher.stopPreview();
//开始推流(参数为推流地址,在推流成功或者失败时会触发之前设置的回调)
pusher.startPush(url);
//停止推流
pusher.stopPusher();
//动态设置最大码率
pusher.setMaxBitrate(2000);
//暂停视频数据推流
pusher.pause();
//恢复视频数据推流
pusher.resume();
//暂停音频数据推流
pusher.mute();
//恢复银牌数据推流
pusher.unmute();
//开启闪光灯
pusher.setFlashLight(true);
//关闭闪光灯
pusher.setFlashLight(false);
//翻转摄像头
pusher.switchCamera();
//获取实时推流信息
pusher.getStats((Map(<String,String> statsMap){
});
//销毁
pusher.destory();
MRTCPuller类介绍
MRTCPuller
类负责进行拉流操作
api使用方法如下:
//设置拉流消息回调
pusher.setCallback(
//拉流成功回调
onConnect:(){
},
//拉流断开回调
onDisconnect:(){
},
//拉流失败回调并抛出错误
onFailed:(int errCode,String errStr){
},
//负责报告拉流过程中产生的错误
onError:(int errCode,String errStr){
},
);
//开始拉流(参数url为拉流地址,viewId为craeteNativeView中回调的viewId)
puller.startPull(url,viewId);
//停止拉流
puller.stopPull()
//暂停视频拉流
puller.pause();
//恢复视频拉流
puller.resume();
//暂停音频拉流
puller.mute();
//恢复音频拉流
puller.unmute();
//获取实时拉流信息
puller.getStats((Map<String,String> statsMap){
});
//销毁
puller.destory();
MRTCSetting类介绍
MRTCSetting
主要负责设备支持的格式获取,以及推流参数的设置
api使用方法如下:
//获取支持的录制分辨率(格式为widthxheight)
List<String> resolutions = await MRTCSetting.getSupportVideoResolutions();
//获取支持的视频编解码器
List<MRTCCodec> codecs = await MRTCSetting.getSupportVideoCodecs();
//获取支持的视频帧率范围
MRTCFpsRange fpsRange = await MRTCSetting.getSupportFpsRange();
//初始化MRTCSetting
//不传入任何参数,默认编解码器为H264,分辨率为720P,帧率为25,使用前置摄像头
MRTCSetting setting = MRTCSetting();