将多个音频文件存储在单个目录中 - Android

Posted

技术标签:

【中文标题】将多个音频文件存储在单个目录中 - Android【英文标题】:Store multiple audio files in single directory- Android 【发布时间】:2016-03-04 08:50:58 【问题描述】:

我正在尝试构建一个 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++;

       

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

请提出新问题的解决方案。 您没有在文件名中使用时间戳。通过使用时间戳,您可以保证名称的唯一性,因此您的任何文件都不会被覆盖。而不是 filename="recording"+i+".mp3";请使用 filename="recording" + new Date().toString() + ".mp3";

以上是关于将多个音频文件存储在单个目录中 - Android的主要内容,如果未能解决你的问题,请参考以下文章

从数据库播放多个音频文件

Xcode:多个音频文件,单个按钮

如何从 Android 中的多个声音块创建单个声音文件

Android 允许将多个文件(最大 150 MB)上传到 PHP 服务器

Android - 将视频/音频文件上传到 Firebase 存储

单个目录指向多个git存储库