录制或流式传输音频输入
了解如何在你的 Flutter 应用中使用 record package 录制或流式传输音频输入。
本实用教程演示如何使用 record package 为你的 Flutter 应用添加音频录制与流式传输能力。要开始使用该 package,请按以下步骤操作:
1. 添加 package 依赖
#要将 package:record 添加为依赖,请使用 flutter pub add:
flutter pub add record
2. 初始化 AudioRecorder
#
初始化一个 AudioRecorder 对象。这是控制录制过程的主要对象。
import 'package:record/record.dart';
final recorder = AudioRecorder();
3. 请求用户权限
#
录制前,你需要请求用户权限。你可能还需要添加各平台特定的权限配置。详情请参阅 record package
文档。
final recorder = AudioRecorder();
if (await recorder.hasPermission()) {
// Permission granted, proceed with recording.
} else {
// Permission denied.
}
4. 创建录制配置
#
创建并配置 RecordConfig 对象以指定录制设置,例如编码器、采样率和声道数。你还可以启用自动增益、回声消除和噪声抑制等功能。
final recordConfig = RecordConfig(
encoder: AudioEncoder.pcm16bits,
sampleRate: 24000,
numChannels: 1,
autoGain: true,
echoCancel: true,
noiseSuppress: true,
);
5. 开始录制到文件
#
要开始录制到文件,请在 AudioRecorder 上调用 start 方法,传入你定义的 recordConfig 以及文件应保存的路径。
// TODO: Specify the path where the audio file should be saved.
final audioFilePath = 'myRecording.wav';
await recorder.start(recordConfig, path: audioFilePath);
6. 控制进行中的录制
#
你可以使用 AudioRecorder 上的 pause、resume 和 stop 方法来控制进行中的录制。
await recorder.pause();
await recorder.resume();
await recorder.stop();
7. [可选] 录制到音频流
#
要流式传输音频,请使用 startStream 方法。该方法会返回音频数据的 stream。
final stream = await recorder.startStream(recordConfig);
stream.listen((audioChunk) {
// Process the audio data. For example, send it to a server.
});
8. 停止录制
#
要停止录制并获取已保存文件的路径,请在 AudioRecorder 上调用异步的 stop 方法。
final path = await recorder.stop();
print('Recording stopped. File saved to: $path');
9. 释放 recorder
#当你不再使用 AudioRecorder 时,记得调用其 dispose 方法以释放资源。
await recorder.dispose();
支持的格式与编码
#
record package 支持多种编码器和文件格式,但各平台支持情况不同。要查看各平台支持的完整编码器列表,请参阅该 package 的 编码支持表。
更多详细信息和示例,请访问 pub.dev 上的 record package
页面,或观看 record Package of the Week 视频。
除非另有说明,本文档之所提及适用于 Flutter 3.44.0 版本。本页面最后更新时间:2026-06-18。查看文档源码 或者 为本页面内容提出建议。