12-9【收货果实】Futter AI只能语音界面开发-1

调用语音识别,首先打开我们的首页
这里我们提供了_jumpToSpeak的方法
12-9【收货果实】Futter AI只能语音界面开发-1_第1张图片

创建语音识别页面

复制一个my_page.dart
12-9【收货果实】Futter AI只能语音界面开发-1_第2张图片
取名叫做speak_page
12-9【收货果实】Futter AI只能语音界面开发-1_第3张图片

12-9【收货果实】Futter AI只能语音界面开发-1_第4张图片
首先先来实现这个界面。中间有一段话,下面有三行文字。
12-9【收货果实】Futter AI只能语音界面开发-1_第5张图片
下面是一个动画的按钮。点击就会变小。右边还有一个关闭的按钮
12-9【收货果实】Futter AI只能语音界面开发-1_第6张图片

这里就用到了之前讲到的动画的相关知识。继承AnimatedWidgtet然后重写里面的方法
12-9【收货果实】Futter AI只能语音界面开发-1_第7张图片
下面定义两个动画,一个是透明度改变的动画,从1到0.5。第二个是大小尺寸的变化,定义一个大小的尺度的常量MIC_SIZE
12-9【收货果实】Futter AI只能语音界面开发-1_第8张图片
80到60 这样变化的一个区间
12-9【收货果实】Futter AI只能语音界面开发-1_第9张图片
定义构造方法。这个构造方法我们接收一个animation的参数
12-9【收货果实】Futter AI只能语音界面开发-1_第10张图片
实现build方法,先获取到animation。然后返回的widget,最外层用Opacity,可以改变透明度。
12-9【收货果实】Futter AI只能语音界面开发-1_第11张图片

12-9【收货果实】Futter AI只能语音界面开发-1_第12张图片

12-9【收货果实】Futter AI只能语音界面开发-1_第13张图片

中间放一个ICON
12-9【收货果实】Futter AI只能语音界面开发-1_第14张图片

底部按钮

这里用到了FractionallySizedBox撑满整个屏幕的宽度,设置他的widthFactor设置为1。然后我们希望布局可以叠加,这里用Stack()
12-9【收货果实】Futter AI只能语音界面开发-1_第15张图片
a按下去的时候调用_speakStart()方法
12-9【收货果实】Futter AI只能语音界面开发-1_第16张图片
分别定义开始、结束、和取消的方法,这里先空着 
12-9【收货果实】Futter AI只能语音界面开发-1_第17张图片
手指松开,停止录音
12-9【收货果实】Futter AI只能语音界面开发-1_第18张图片
长按,并滑出的时候,这是一个canel
12-9【收货果实】Futter AI只能语音界面开发-1_第19张图片
上面是文字,下面是圆型的按钮。
12-9【收货果实】Futter AI只能语音界面开发-1_第20张图片
用Column布局
12-9【收货果实】Futter AI只能语音界面开发-1_第21张图片
在上面定义一个变量
12-9【收货果实】Futter AI只能语音界面开发-1_第22张图片
12-9【收货果实】Futter AI只能语音界面开发-1_第23张图片

12-9【收货果实】Futter AI只能语音界面开发-1_第24张图片
在点击的时候放大和缩小,造成布局的宽度和高度也会放大和缩小。这个时候上面那个识别中的文字就会因为下面的布局的宽度和高度变化。而改变了识别中这个文字的位置。所以为了不改变这个位置。我们用了一个Container作为一个占位符。
12-9【收货果实】Futter AI只能语音界面开发-1_第25张图片
12-9【收货果实】Futter AI只能语音界面开发-1_第26张图片
这也算是本节课的彩蛋
12-9【收货果实】Futter AI只能语音界面开发-1_第27张图片
下面放一个center,里面放一个AnimatedMic
12-9【收货果实】Futter AI只能语音界面开发-1_第28张图片
在上面定义animation然后初始化一下。
12-9【收货果实】Futter AI只能语音界面开发-1_第29张图片

12-9【收货果实】Futter AI只能语音界面开发-1_第30张图片
在这里我们要定义animationController来控制我们的动画。
12-9【收货果实】Futter AI只能语音界面开发-1_第31张图片
12-9【收货果实】Futter AI只能语音界面开发-1_第32张图片
12-9【收货果实】Futter AI只能语音界面开发-1_第33张图片
添加动画的listener。在东海海执行完成之后,我们希望动画能够循环执行。
12-9【收货果实】Futter AI只能语音界面开发-1_第34张图片

结束

 

你可能感兴趣的:(12-9【收货果实】Futter AI只能语音界面开发-1)