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, // 关键:仅使用麦克风
);

注意事项

  1. 权限配置:在android/app/src/main/AndroidManifest.xml中添加麦克风权限:

    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    

    在iOS的ios/Runner/Info.plist中添加:

    <key>NSMicrophoneUsageDescription</key>
    <string>需要麦克风权限进行录音</string>
    
  2. 动态权限申请:使用permission_handler等插件在运行时请求录音权限。

  3. 音频会话配置:通过openAudioSession正确设置音频会话,避免与其他应用音频冲突。

其他音频源选项

  • AudioSource.CAMCORDER:后置麦克风(安卓)
  • AudioSource.VOICE_RECOGNITION:语音识别优化
  • AudioSource.VOICE_COMMUNICATION:VoIP通话优化

通过明确指定AudioSource.MIC并配合权限管理,即可确保只录制麦克风输入。

回到顶部