Flutter如何确保flutter_sound插件只录制麦克风声音
在使用Flutter的flutter_sound插件时,如何确保只录制麦克风的声音而不会捕获系统内部音频?目前测试发现插件似乎会同时录制设备播放的音频,但项目需求需要隔离纯麦克风输入。请问是否需要特定参数配置,或者iOS/Android平台需要分别处理?官方文档未明确说明此功能,求有经验的朋友分享解决方案。
2 回复
使用AudioSource.microphone参数初始化FlutterSoundRecorder,确保仅录制麦克风输入,避免系统混音。示例代码:
await _recorder.openAudioSession(
focus: AudioFocus.requestFocusAndStopOthers,
category: SessionCategory.record,
mode: SessionMode.modeDefault,
device: AudioDevice.microphone,
);
更多关于Flutter如何确保flutter_sound插件只录制麦克风声音的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,使用flutter_sound插件确保只录制麦克风声音,主要通过配置音频源参数实现。以下是具体方法:
关键配置
在初始化录音时,设置audioSource参数为AudioSource.MIC:
import 'package:flutter_sound/flutter_sound.dart';
// 初始化FlutterSoundRecorder
final FlutterSoundRecorder _recorder = FlutterSoundRecorder();
// 开始录音时指定音频源
await _recorder.openAudioSession(
focus: AudioFocus.requestFocusAndStopOthers,
category: SessionCategory.playAndRecord,
mode: SessionMode.modeDefault,
device: AudioDevice.speaker,
);
await _recorder.startRecorder(
toFile: '录音文件路径',
codec: Codec.aacADTS,
audioSource: AudioSource.MIC, // 关键:仅使用麦克风
);
注意事项
-
权限配置:在
android/app/src/main/AndroidManifest.xml中添加麦克风权限:<uses-permission android:name="android.permission.RECORD_AUDIO" />在iOS的
ios/Runner/Info.plist中添加:<key>NSMicrophoneUsageDescription</key> <string>需要麦克风权限进行录音</string> -
动态权限申请:使用
permission_handler等插件在运行时请求录音权限。 -
音频会话配置:通过
openAudioSession正确设置音频会话,避免与其他应用音频冲突。
其他音频源选项
AudioSource.CAMCORDER:后置麦克风(安卓)AudioSource.VOICE_RECOGNITION:语音识别优化AudioSource.VOICE_COMMUNICATION:VoIP通话优化
通过明确指定AudioSource.MIC并配合权限管理,即可确保只录制麦克风输入。

