0

次のコードとして音声を録音する方法を知っています

String path = android.os.Environment.getExternalStorageDirectory()+"/Record/test.3gp";



boolean exists = (new File(android.os.Environment.getExternalStorageDirectory()+"/Record/")).exists();

                if(!exists)
                {
                    newFile(android.os.Environment.getExternalStorageDirectory()+"/Record/").mkdirs();

                }



MediaRecorder recorder = new MediaRecorder();       


recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

                         recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

                recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

                recorder.setOutputFile(path);
                try {
                    recorder.prepare();
                    recorder.start();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

このコードでは、「recorder.setOutputFile(path);」で出力パスを指定します。それは正常に動作しますが、私の問題は、もう一度録音すると同じパスが上書きされることです。そのため、SDカードの同じパスに複数の音声を保存する方法を教えてください。

4

1 に答える 1

3

MediaRecorderオブジェクトは毎回同じ出力パスを取得するため、ファイルは上書きされます。毎回、出力ファイルに個別の名前を付ける必要があります。

良い方法は、ファイル名にその日の日付/時刻を使用することです。

簡単な例は次のとおりです。

String path = android.os.Environment.getExternalStorageDirectory()
    + "/Record/test_" + System.currentTimeMillis() + ".3gp";
于 2012-10-05T11:20:35.717 に答える