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

建议先学

已经实现好了这几个类。

首先以安卓模式来打开我们的项目

在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。我们只取一份。

配置好以后进行同步

结束

原文地址:https://www.cnblogs.com/wangjunwei/p/12311159.html

时间: 2024-10-08 16:35:18

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

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

重点实现AsrPlugin, 需要打印log.就需要一个TAG,这里定义了一个TAG 然后来添加一个方法 在里面实例化MethodChannel和我们的Dart端进行关联,参数接收一个BinaryMessager 用register.messager()获取到Message 然后来实例化Plugin.传递register 构造方法,接收一个register 重要的一步 setMethodCallHandler这样我们才能处理,来自dart端的消息. 在构造方法内获取activity.要获取act

12-4【全栈皆宜】Flutter Plugin开发指南-Dart端实现

开发flutter的插件,首先来定义Dart端的接口. 创建plugin目录 创建类 这里需要用到dart端和native端通讯的channel.首先需要导入services的包 指定channe的名字要和native端统一,否则找不到 提供几个接口. 首先是start方法,参数params为可选的 停止录音的接口.和取消录音的方法 结束 原文地址:https://www.cnblogs.com/wangjunwei/p/12311152.html

任督二脉

RMI:https://www.cnblogs.com/xt0810/p/3640167.html 因为真要有技术深度的话,你可能需要花费至少2年的时间,从底层开始研究一些基础性的技术. 在打通你的底层技术任督二脉之后,再去对常见的开源技术进行深入的源码研究,比如说:dubbo.zookeeper.spring cloud.redis.rocketmq.elasticsearch,等等. 有了几年的积累过后,最后你在面试的时候,技术深度的体现,其实都是厚积薄发的. 原文地址:https://ww

天河微信小程序入门《三》:打通任督二脉,前后台互通

原文链接:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=505&extra=page%3D1 天河君在申请到https证书后就第一时间去部署后台环境,但是发现每次访问https都要带上8443端口实在是很坑爹啊,作为一个强迫症晚期,我要做的自然是不带端口直接访问.打开你tomcat下的conf文件夹,编辑里面的server.xml <Connector port="80" protocol=&quo

打通任督二脉---原来这就是计算机(持续更新)

笔者是一个计算机爱好者,还记得当初还是个刚上小学的孩子,那时,我第一次听说世界上还有计算机这种东西(那时都叫电脑),当时是90年代,估计那时全村也没有一个人见过电脑,所以电脑就被传的神乎其神:有了电脑,任何犯人都逃不过警察的追捕,因为电脑能算出来犯人在哪里,电脑能一瞬间算出当时觉得比登天还难的5位数的加减乘除,电视里的天气预报也是电脑算的,什么火箭,卫星,原子弹,氢弹都是电脑算出来的......  能想象出我当时对电脑崇拜的心情吗,当时,在我的眼里,电脑不是机器,而是像神一样的虚幻的存在,甚至都

案例干货|用友罗涛:打通产品开发的任督二脉

[精彩预告]用友集团开发管理部总经理罗涛将于5月21日在上海MPD工作坊进行<破解4小时上线传说>的3小时分享.通过一个故事引入互联网+产品开发的迭代思路.价值发掘和发布规划等核心思想和工具,将结组利用小图团队的力量使用影响地图.用户故事地图.无代码验证等演练手段在3个小时的工作坊内快速发布一个产品,带领学员在操作中理解精益和敏捷.文章来源:公众号 :msup(ID:msupclub)关注回复“体验工坊”有惊喜. 导读:在面对需求的变化无常.人员的变动和技术的更新时,对客户价值的识别尤其重要,

打通电商多模式支持的“任督二脉”

你听说过任督二脉吗?像这样~ 咳咳~今天不讲武功,讲电商平台设计的功夫~ 背景 当今的电商可不仅仅是B2C商城,接下来还会有O2O,往后可能还会有商超.奥莱.二手交易...且称之为业务模式~而每个业务模式下还会有预售.竞拍.拼团等不同组合的子模式. 可是我商城的商品列表页不想展示O2O的商品啊,商品列表的数据希望按一定规则相互隔离.其他模块,有的出于操作习惯的考虑不隔离,有的出于用户行为的考虑需要隔离. 各模块数据隔离需求如下   列表页 商详页 商品组 优惠券 活动 订单 ... 原商城 隔离

K2 BPM_当K2遇上医药,用流程打通企业的任督二脉_业务流程管理系统

据调查,如今仍有60%的医药企业,存在合规经营和利润下降的困扰,在“研”.“产”.“供”.“销”的运营过程中,时时伴随着严苛的管理政策和法规.如何加强企业跨部门.跨组织.跨业务线的执行能力,始终是管理层最关注的话题.而流程,则是打通“任督二脉”,提高执行力的最佳解决办法. 当K2遇上医药 K2在医药行业的核心应用 -医疗推广活动管理 -讲者管理 (含讲者资质审核/讲者在线付款流程) -全面费用管理 -经销商管理 -特价及返利管理 -医疗问询及不良反应记录追踪 -招投标管理 -注册证管理 -销售&

Appium+python自动化(十一)- 元素定位秘籍助你打通任督二脉 - 下卷(超详解)

简介 宏哥看你骨骼惊奇,印堂发亮,必是练武之奇才! 按照上一篇的节目预告,这一篇还是继续由宏哥给小伙伴们分享元素定位,是不是按照上一篇的秘籍修炼,是不是感觉到头顶盖好像被掀开,内气从头上冒出去,顿时觉得整个身体都融化了,而且身轻如燕啊!而且控制不住手,想要动手操作一番呢?那还在等什么呢,和宏哥一起练起来吧!!! 1. List定位 List故名思义就是一个列表,在python里面也有list这一个说法,如果你不是很理解什么是list,这里暂且理解为一个数组或者说一个集合.首先一个list是一个集