1

少なくとも 44.1 kHz のサンプリング レートで録音する必要があります。新しいデバイス (Android 4.1.2) で次のコードをテストしましたが、録音されたオーディオは、入力に基づいて異なるサンプリング レートになります。ただし、古いデバイス (Android 2.3.4) を使用すると、選択したサンプリング レートに関係なく、常に 8 kHz でサンプリングされたファイルが返されます。

出力形式とオーディオ エンコーダーの両方が API レベル 10 であり、これは私の古いデバイスのレベルを下回っています。私の古いデバイス (Droid X) が 8 kHz のオーディオ サンプリング レートしかサポートしないハードウェアを搭載しているとは思えないので、必要なサンプリング レートを強制する別の方法が必要だと思います。

private void startRecording() {

            mRecorder = new MediaRecorder();
            mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            mRecorder.setOutputFile(mFileName);
            mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
            mRecorder.setAudioSamplingRate(44100);


            try {
                mRecorder.prepare();
            } catch (IOException e) {
                Log.e(LOG_TAG, "prepare() failed");
            }

            mRecorder.start();
        }
4

1 に答える 1

1

を次のように設定OutputFormatします。

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AAC_ADTS);

それから試してください。それが動作します。

于 2015-06-17T13:47:24.720 に答える