官方介绍
这个插件为android和ios平台提供了简单的记录器和播放器功能。这仅支持每个平台的默认文件扩展名。该插件可以处理来自远程URL的文件,也可以处理本地播放流(通过桥接同步准确时间)。
需要权限
iOS:需要在文件添加一下权限
NSMicrophoneUsageDescription
This sample uses the microphone to record your speech and convert it to text.
UIBackgroundModes
audio
image.png
Android:需要
官方的功能方法
用法
生成对象
FlutterSound flutterSound = new FlutterSound();
一、录音功能
1.启动录音
//file是文件名,比如 file = ? 'ios.m4a' : 'android.mp4'
Future result = await (file);
返回录音音频文件的uri路径字符串成。
2.停止录音
Future result = await ();
(value) {
print('stopRecorder: $value');
if (_recorderSubscription != null) {
_recorderSubscription.cancel();
_recorderSubscription = null;
}
}
3.通过订阅流来监听录音状态
StreamSubscription _recorderSubscription = = ((e) {
// RecordStatus
DateTime date = new (
(),
isUtc: true);
print("got update -> ${}");
String txt = DateFormat('mm:ss:SS', 'en_GB').format(date);
(() {
this._recorderTxt = (0, 5);
});
});
_recorderSubscription可以控制录音暂停和回复录音
注意!!!!
_recorderSubscription 这个监听的暂停和恢复录音有一个bug,就是暂停录音的时候,录音的时间会不准确,录音时它会一直走,就是说当我恢复录音的时候,录音的时间加上我暂停时的时间,就是说我暂停的时候已经记录了00:10,当我过了10秒之后恢复录音,给我返回的记录时间是00:20,但是我期待的是返回00:11。这个bug我试了很多遍,最后也没办法解决,这也导致我了我放弃录音功能来使用它,而改用了flutter_audio_recorder.
PS:希望大神来解决这个问题。
二、语音播放
1.开始播放
// uri 可以是本地的音频,也可以是网络上的音频。注意,如果网络不好的话,需要等待...
Future result = await (uri);
2.停止播放
Future result = await ();
3.暂停
Future result = await ();
4.恢复播放
Future result = await ();
5.拖动进度
String Future = await (miliSecs);
音频播放基本上是正常的,可以播放本地的音频,也可以是网络上的音频,亲测都可以用。