| 
 | 
 
在 Android Studio 中使用 Java 和 FFmpeg 获取语音并保存为 WAV 文件,可以通过以下步骤实现: 
 
1. 添加 FFmpeg 库依赖 
首先,在项目中集成 FFmpeg 库,推荐使用 FFmpegKit 
Gradle: 
- dependencies {
 
 -     implementation 'com.arthenica:ffmpeg-kit-android:4.5.1-LTS'
 
 - }
 
 
  复制代码 
 
2. 权限配置 
在 AndroidManifest.xml 中添加录音和存储权限 
Xml: 
- <uses-permission android:name="android.permission.RECORD_AUDIO" />
 
 - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
 
  复制代码 
 
3. 使用 FFmpeg 录制音频并保存为 WAV 
调用 FFmpegKit.execute() 执行 FFmpeg 命令录制音频: 
Java: 
- import com.arthenica.ffmpegkit.FFmpegKit;
 
 - import com.arthenica.ffmpegkit.ReturnCode;
 
  
- // 定义输出文件路径
 
 - String outputPath = getExternalFilesDir(null) + "/recording.wav";
 
  
- // 构造 FFmpeg 命令
 
 - String command = String.format("-f android_camera -i audio -t 10 %s", outputPath);
 
  
- // 执行命令
 
 - FFmpegKit.execute(command, session -> {
 
 -     if (ReturnCode.isSuccess(session.getReturnCode())) {
 
 -         // 录制成功
 
 -         Log.d("FFmpeg", "Audio recorded successfully to " + outputPath);
 
 -     } else {
 
 -         // 处理错误
 
 -         Log.e("FFmpeg", "Recording failed with state " + session.getState());
 
 -     }
 
 - });
 
 
  复制代码 
 
注意:实际应用中需根据设备支持的音频输入格式调整命令参数。部分设备可能不直接支持 android_camera 输入方式,此时可考虑先用 MediaRecorder 录制原始音频再转换格式。 
 
4. 替代方案:先录制后转码 
如果无法直接录制 WAV,可以分两步完成: 
使用 MediaRecorder 录制 AAC 音频 
使用 FFmpeg 将 AAC 转换为 WAV 格式 
Java: 
- // 转换命令示例
 
 - String convertCommand = String.format("-i %s -acodec pcm_s16le -ar 44100 %s", inputAacPath, outputWavPath);
 
 - FFmpegKit.execute(convertCommand);
 
 
  复制代码 
 |   
 
 
 
 |