您的位置:首页 > 博客中心 > APP开发 >

12-5【打通Flutter与Android的任督二脉】Flutter Plugin开发指南-Android端实现-1

时间:2022-03-12 22:06

建议先学
技术图片
已经实现好了这几个类。
技术图片

技术图片

首先以安卓模式来打开我们的项目
技术图片
在asr这个目录下,导入几个类
技术图片
这几个类其实是下载的百度AI语音demo里面所提供的,里面已经提供了对百度AI的使用
首先复制这个IRecogListener
技术图片
IRecogListener复制过来改个名字叫做OnasrListener
技术图片
技术图片

这里用到了RecogResult
技术图片
从demo工程里面导入RecogResult
技术图片
直接复制过来即可
技术图片
导入RecogEventAdpter
技术图片
导入后,这里的Listener需要改成OnAsrListener
技术图片
全局替换
技术图片
这里的日志的引用删除
技术图片

这里的MyLogger修改为
技术图片
修改为Log.e 
技术图片
还有其他的地方有,都替换为Log.e
技术图片

创建管理类

处理录音的管理类
技术图片
技术图片
我们创建的类参考百度的例子里面的MyRecognizer
技术图片
把MyRecognizer这个里面的代码否复制到AsrManager类里面。
技术图片
根据提示导入对应的包
技术图片
参考demo 的类里面的包引用 复制过来
技术图片
复制过来后,把无法识别的去掉。
技术图片
创建一个TAG
技术图片
技术图片
批量替换一下
技术图片
这里删除
技术图片
这里删除
技术图片
删除
技术图片

技术图片
构造方法的名字要改过来
技术图片
log修改为系统的log
技术图片
修改为Log.e
技术图片
这里的Listener创建为一个
技术图片

技术图片
技术图片
这行代码删除掉。
技术图片
参数这里保持一致
技术图片
离线的方法我们不需要,这里直接删除
技术图片
log修改 为下面。
技术图片
stop方法也修改
技术图片

cancel方法

技术图片
release这段代码不需要
技术图片
下面这个也删除。
技术图片
AseManager已经实现好了。就是用来调用百度的语音SDK来完成开始录音、停止录音以及取消录音。还有释放资源这几个方法。

为AsrManager设置Plugin

因为我们的flutter还不能直接的调用它,需要通过我们的中间件。起名叫做AsrPlugin
技术图片
接下来重点来实现AsrPlugin。这里需要用到MessageChannel

实现一个接口,这里还没有任何的提示
技术图片
这是因为我们这里还没有添加flutter的依赖。
技术图片
我们来添加对flutter的依赖,这样我们才好在里面开发plugin。

App是怎么依赖Flutter SDK的

首先我们这个App项目里面依赖了flutter
技术图片

app的gradle里面配置了这样一段代码
技术图片
配置了以后 最终得到了FlutterRoot
技术图片
通过FlutterRoot得到了flutter这样一个脚本。让我们当前的gradle来应用这样的脚本。这样我们的App项目就依赖了Flutter SDK了。
技术图片
技术图片

参考App

复制app的这段代码
技术图片
复制过来
技术图片

技术图片
这里也需要复制
技术图片
技术图片
sync同步
技术图片
查看Model有没有对Flutter依赖成功。首先我们调用Flutter里面的一个类,如果调用成功了就表示已经依赖成功了。
技术图片
它就是flutter包下面的。这就说明我们在这个module里面已经成功的依赖了flutter的SDK
技术图片
实现接口内的方法
技术图片

解决两个模块之间都引用flutter sdk的冲突

两个module同时依赖了flutter。app这个Module又同时依赖asr_plugin这个module,他们两个之间的flutter sdk就会冲突。那么怎么解决这个冲突呢?
技术图片

首先打开app这个模块的gradle。配置一下,让它对flutter依赖不冲突。
技术图片
需要进行两步修改,
第一步,在继承sdk的时候,导入了三种架构的目录。对abiFilters过滤这三种包,也就是只打这三种架构的包。加入X86是因为模拟器只支持X86的架构
技术图片
技术图片
技术图片

第二步:
添加打包的配置
技术图片
也就是打包的时候会出现两份so。我们只取一份。
技术图片
配置好以后进行同步
技术图片

结束

 

相关推荐

电脑软件

本类排行

今日推荐

热门手游