当前位置: 代码迷 >> java >> 我的录音机将旧录音替换为新录音,而不是创建新文件
  详细解决方案

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

热度:13   发布时间:2023-07-25 19:07:12.0

我正在构建的录音机将文件保存为THREE_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";
  相关解决方案