如何以 Media Recorder 不支持的格式进行编码?

How can I encode in a format that's not supported by Media Recorder?

我正在编写一个 android 应用程序,它将是一个需要在特定设置下录制 .wav 文件的录音机应用程序。需要匹配以下信息:

   File Type: Windows PCM
   File extension: .wav
   22050 Hz, 16-bit, Stereo

以上文件信息来自this file。这是我们的服务器将播放的标准 Windows 文件。如果文件与这些设置不匹配,我们的服务器将不会解释该文件。我试过这样录音,但行不通:

        mRecorder = new MediaRecorder();
        SharedPreferences prefs = getSharedPreferences("MyPreference", MODE_PRIVATE);
        int curValue = prefs.getInt("recordCount", 0); // Getting current value of sharedPref
        String fileNameWNum = "Recording" + curValue + ".wav";
        ...
        mRecorder.setOutputFile(fileName);
        mRecorder.setAudioEncoder(ENCODING_PCM_16BIT);
        mRecorder.setAudioSamplingRate(22050);

此方法正在制作 .wav 文件但不对其进行编码。谁能建议我如何对信息进行编码?

编辑:This is the file 正在被我的软件记录

基于您共享的文件(录音8.wav)。

属性 文件。

持续时间:00:00:38.08,开始:0.000000,比特率:15 kb/s 流 #0:0(eng):音频:amr_wb (sawb / 0x62776173),16000 Hz,单声道,flt,13 kb/s(默认)

请检查此参考代码 Wav recording on Android and Audio Record Class

注意:普通 MediaRecorder 不支持 Android.

中的 wav 录制