2016-03-04 123 views
-1

我正在尝试构建一个android录音机应用程序,其中的音频录制内容应存储在我的手机内部存储器中的目录中。在单个目录中存储多个音频文件 - Android

这是我在Android的Studio代码:

File AudioDir=new File("/sdcard/Audiofiles/"); 
AudioDir.mkdir(); 
String filename="recording.mp3"; 
output = new File(AudioDir.getAbsolutePath(), filename); 
output.createNewFile(); 

该代码将单一音频文件Audiofiles文件夹并覆盖新的录音。
我收到了名称为recording.mp3的最新录音。 旧的不见了。

我想多个录音存储在同一个目录中。 我试着编码它,但找不到任何成功。请帮忙。

这是我写的代码:

AudioDir=new File("/sdcard/Audiofiles/"); 
    AudioDir.mkdir(); 
    File output=null; 

    Boolean flag=false; 
    String filename=null; 
    File file[]=AudioDir.listFiles(); 

     for(int i=0;i<file.length;i++) 
     { 
      if (file[i].equals(filename)) 
       flag=true; 
      else 
       flag=false; 
     } 

     if(flag==true) 
     { 
      System.out.println(i +" :flag==true"); 
      filename="recording"+i+".mp3"; 
      output = new File(AudioDir.getAbsolutePath(), filename); 
      output.createNewFile(); 

     } 
     else if(flag==false) 
     { 
      System.out.println(i +" :flag==false"); 
      filename="recording"+i+".mp3"; 
      output = new File(AudioDir.getAbsolutePath(), filename); 
      output.createNewFile(); 
      i++; 

     } 

现在发生的事情是,我得到的文件与文件夹中唯一的名称..酷.. !! 但是,一旦我关闭了应用程序,并再次打开并记录音频,以前的文件得到覆盖 ..我不希望发生这种情况。 我需要所有的文件..我该怎么办?

回答

4

您的文件被覆盖,因为它们具有相同的名称。您必须为每个保存的名称提供不同的名称,例如“录制”+时间戳+“.mp3”。

+0

Plz建议解决新问题。 – Karthik

+0

您没有在文件名中使用时间戳。通过使用时间戳,您可以保证唯一的名称,因此您的任何文件都不会被覆盖。而不是filename =“recording”+ i +“。mp3”;请使用filename =“recording”+ new Date()。toString()+“.mp3”; –

+0

哦..好吧..我会试试看.. – Karthik

相关问题