我的录音机用新录音替换了旧录音,而不是创建新文件



录音机我正在构建以三_GPP格式保存文件。问题在于它用旧文件替换了新文件,因此丢失了旧文件。

mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
    mFileName += "/AudioRecording.3gp";

我尝试过没有结果:

mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
int entryNumber = 1;
do {
    if (this.mFileName == mFileName) {
        this.mFileName += "/AudioRecording.3gp" + "(" + entryNumber + ")";
        entryNumber++;
    }
} while (this.mFileName != mFileName);

音频创建:

    mRecorder = new MediaRecorder();
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    mRecorder.setOutputFile(mFileName);

我担心该代码甚至都不针对这里的适当范围,但是我没有其他方式向编译器表达它必须在该路径中寻找文件。

您应该更改检查文件是否已经存在的方式:

mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
int entryNumber = 1;
File mFile = new File(mFileName + "/AudioRecording_" + String.valueOf(entryNumber) + ".3gp");
while(mFile.exists()) {
   entryNumber++;
   mFile = new File(mFileName + "/AudioRecording_" + String.valueOf(entryNumber) + ".3gp");
}
this.mFileName = mFile.getAbsolutePath();

尝试:

    mFileName = Environment.getExternalStorageDirectory().getAbsolutePath()
 + "/AudioRecording" 
 + String.valueOf(System.currentTimeMillis()) 
 + ".3gp";

最新更新