Android Studio Java - 不使用 ffmpeg 将 3gp 文件转换为 wav

Android Studio Java - Convert 3gp file to wav without ffmpeg

我正在 Java 中编写一个 Android Studio 项目来记录音频,然后将其发送到 flask server 以提取其音符。

因为我发现 MediaRecorder 比其他解决方案更容易使用和更友好,所以我用它来录制音频。但是,它不支持wav 格式。 (支持的不同输出格式是MPEG_4 | WEBM | THREE_GPP | AAC_ADTS | AMR_NB | AMR_WB | MPEG_2_TS | OGG,我目前使用3gp(THREE_GPP))。

因为我的 flask 服务器只接受 wav 文件,我的目标是将录制的文件(可以是上面支持的任何格式)转换为 wav 格式。我已经尝试使用 ffmpeg 库,因为我在这个网站上找到了这个解决方案,但由于权限限制,它不允许我执行 ffmpeg commands

所以我的最后一个问题是,如何在不执行任何 shell 命令的情况下使用 Java 将录制的音频文件转换为 wav 格式?

如果有更好的方法来实现我的目标,例如修复我遇到的权限错误或任何其他解决方案,我也很乐意听到。

我找到了在 android 工作室中录制 wav 文件的替代方法。

我在 github 上找到了一个名为 WavAudioRecorder 的 class。

来源:https://github.com/roman10/roman10-android-tutorial/blob/master/AndroidWaveRecorder/src/roman10/tutorial/androidwaverecorder/WavAudioRecorder.java