最近这段时间一直想做一个小功能就是录音及录音播放,这个其实本来就有插件可供参考的,像:flutter_sound 录音功能的插件,audioplayers 音频播放的插件。

这两个插件都已经是很成熟了,然而要怎么组合起来,,组合起来会有什么问题,这都要你经过开发才会知道。

废话少说,我们先看一下这个小的功能样式,上图:

flutter 录音iOS16不成功 flutter 录像_objective-c


播放列表页

flutter 录音iOS16不成功 flutter 录像_ios_02


录音页

播放列表是用的audioplayers 播放,安卓手机和苹果都需要对权限的配置,

其中安卓需要设置:

flutter 录音iOS16不成功 flutter 录像_objective-c_03


还有权限设置:

flutter 录音iOS16不成功 flutter 录像_objective-c_04

<uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

设置完成后基本就可以运行项目了。
对于iOS方面:
由于我们引用了

#  权限处理
  permission_handler: ^5.0.1

权限管理,然后我们还需要录制声音,所以我们需要在info.plist文件中添加麦克风权限。

如果你是由苹果开发转的flutter开发我想你应该不用我交,直接在xcode中就修改了,但如果你不是的话,看图:

flutter 录音iOS16不成功 flutter 录像_objective-c_05


按照上面的目录,添加这个值:

<key>NSMicrophoneUsageDescription</key>
	<string>App需要您的同意,才能访问麦克风</string>

同时如果你发现你的项目还是无法运行,那么就继续执行:
podfile中的操作,这个我在另一篇文章中详细介绍过:
flutter项目权限设置报错 将这些问题都解决后,这个项目你基本上就已经可以运行了,至于具体代码,我就不在这里罗列了,可参照:flutter_app.zip 如果你不想花钱下载,点关注私信我呦!!!
说一下遇到的几个问题:
1、当我们进入录音界面时,点击录音,开始录音,这时需要对删除和保存按钮进行隐藏,当录音完成后再令这两个按钮显示,录音按钮隐藏。这样做的目的是避免在你录音的同时执行了删除操作,致使路径被删除但你的录音还在继续,就会报错。
2、录音的过程中进入列表页,去播放列表中的声音,这样就会导致你在录制过程中监听录音部分被打断,当你再回来时,无法继续录音
3、在录音界面与播放界面来回切换时,我们需要录音界面每次被呈现都重新去初始化一次录音配置,别问我为什么,我操作的时候,如果不能重新初始化,那么就会录音失败。
总结一下:
虽然这仅仅是一个简简单单的小功能,但是在制作的过程中,还真是碰到过不小的问题,即使是目前的项目,也是有bug,但目前工作有些许繁忙,就先不去继续研究,留待后续各位谁有更好的办法去解决这些问题吧!!!