flutter实现视频通话(flutter播放录音插件)

编程技术
2022-12-25 05:10:30
评论:0    浏览:29    

场景说明:微信等聊天软件中常用的语音聊天,或者输入法中的语音识别转文字,或是聊天中的语音转文字

场景解析:录入语音,并将数据发送到后台解析并回传结果到前端,展示结果

重点:如何收录用户的声音并加以后续操作,当用户获得语音后我们可以将语音存储起来,也可以将语音数据发送到后端解析转化成文字,也可以实现变声的效果。

本案例着重讲解收录声音的部分

下面跟着作者一步一来,熟手建议直接跳过看源码中的核心代码部分。

UI结构解析

从上到下依次为录音时间(普通状态下隐藏),开始录音,播放录音,录音的列表

开始录音的按钮使用GestureDetector组件完成,可以识别按下,抬起,取消等手势。

下方的列表使用Expanded ListView的形式存放录音列表,子项可以点击播放该子项的声音

核心代码

1、按下的时候开始录音,将录音的路径获取到存放在一个List中,并在手机文件夹中生成文件

//开始录音 startRecord()async{ setState(() { isHide = false; }); log(“开始录音”); Directory tempDir = await getTemporaryDirectory(); String path = await recorderModule.startRecorder( uri: ‘${tempDir.path}/${DateTime.now().millisecondsSinceEpoch}-${Platform.isAndroid?”mp3″:”m4a”}’, codec: _codec, ); records.add(path); recorderModule.onRecorderStateChanged.listen((e) { if (e != null && e.currentPosition != null) { DateTime date = new DateTime.fromMillisecondsSinceEpoch( e.currentPosition.toInt(), isUtc: true); setState(() { costTime = date.second; }); } }); }

2、取消的时候将该文件夹删除,删除List中对应的录音路径,并且停止录音

//取消录音 cancelRecord()async{ records.removeLast(); await recorderModule.stopRecorder(); setState(() { isHide = true; costTime = 0; }); }

3、完成的时候停止录音即可

//停止录音 stopRecord()async{ await recorderModule.stopRecorder(); setState(() { isHide = true; costTime = 0; }); }

4、播放的时候调用播放方法即可

//开始录音startRecord()async{ setState(() { isHide = false; }); log(“开始录音”); Directory tempDir = await getTemporaryDirectory(); String path = await recorderModule.startRecorder( uri: ‘${tempDir.path}/${DateTime.now().millisecondsSinceEpoch}-${Platform.isAndroid?”mp3″:”m4a”}’, codec: _codec, ); records.add(path); recorderModule.onRecorderStateChanged.listen((e) { if (e != null && e.currentPosition != null) { DateTime date = new DateTime.fromMillisecondsSinceEpoch( e.currentPosition.toInt(), isUtc: true); setState(() { costTime = date.second; }); } });}

注意点:

使用的插件:flutter_sound、path_provider

权限声明:android和ios配置文件中需要加入相应的权限声明,本源代码没有ios的配置,如果需要,自行百度。

源代码地址:https://gitee.com/bxrhhy/flutter_voiceRecord

(本来想着用github的,但我支持码云,国内的速度也要快一些)

以上内容为【Flutter语音播放实例(附源码)(android语音播报源码)】的相关内容。

 

免责声明:

本文内容来自用户上传并发布或网络新闻客户端自媒体,本站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系删除。

 

0 条相关评论

打赏


比丘资源网 » flutter实现视频通话(flutter播放录音插件)

发表回复

提供最优质的资源集合

立即查看 了解详情