flutter录音_flutter_sound录音与播放

时间:2024-10-08 16:42:40

官方介绍

这个插件为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);

音频播放基本上是正常的,可以播放本地的音频,也可以是网络上的音频,亲测都可以用。