1

これは私のコードの一部です:

mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);    
CamcorderProfile camcorderProfile_HQ = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);     
mediaRecorder.setProfile(camcorderProfile_HQ);    
mediaRecorder.setOutputFile("/sdcard/Video.mp4");    
mediaRecorder.setMaxDuration(600000000); // Set max duration 60 sec.    
mediaRecorder.setMaxFileSize(500000000); // Set max file size 5M    

クラス全員がライブカメラからSDカードまでビデオを録画します。しかし、私はいつも同じパスでそれを保存しているので、私が録画した新しいビデオは前のビデオを上書きします。新しい名前で保存されるたびに、またはビデオが互いに上書きされないようにパスを変更するにはどうすればよいですか?

4

2 に答える 2

3

'/sdcard'やのような筋金入りの文字列は使用しないでください'/mnt/sdcard'

常に使用しますEnvironment.getExternalStorageDirectory()。以下の関数を使用して、毎回新しい名前を取得します。

 private File getNextFileName() 
 {
    File file = new File(Environment.getExternalStorageDirectory(), "Video_" + System.currentTimeMillis() + ".mp4" );
    return file;
 }
于 2013-03-13T11:13:19.760 に答える
0

video.mp4 の代わりに System.nanoTime() を取得し、パスに挿入します。

mediaRecorder.setOutputFile("/sdcard/" + System.nanoTime() + "_video.mp4");    
于 2013-03-13T11:08:10.797 に答える