首页
产品
帮助文档
博客
控制台

MRTC-Flutter SDK介绍

目录

接入指南

  1. 添加依赖 在pubspec.yaml文件中添加对MRTC的依赖如下:

    dependencies:
    flutter:
      sdk: flutter
    mrtc_flutter: ^1.0.0
    

    然后执行flutter packages get即可拉取此库

  2. 如何使用 在需要使用到推拉流服务的.dart文件中加入

    import 'package:mrtc_flutter/mrtc_flutter.dart';
    

    即可开始编码

  3. 注意事项

    • 当再使用推拉流时应调用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推拉流来创建MRTCPusherMRTCPullerNativeView,并负责了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();