如何在Android中存储大量音频文件

时间:2014-03-08 17:00:49

标签: android audio storage

我需要在我的应用中存储大量音频文件(大约350/400个文件)。每个文件的平均大小为2MB。我真的不知道在哪里存放它们。我应该使用SQLite数据库吗?外部存储 ?别的什么?

这些文件没有更新,我只想存储它们然后播放它们。目前我在res / raw文件夹中有15个文件,启动速度非常慢。

我的问题与此类似:How to store large number of Audio Files in Android?但我没有得到答案。

由于

3 个答案:

答案 0 :(得分:1)

您需要在SD卡等其他地方存储。 Google Play目前要求您的APK文件不超过50MB。我的数学需要800MB。

检查此链接: http://developer.android.com/google/play/expansion-files.html

答案 1 :(得分:0)

您应该将它们存储在外部存储目录中,除非此应用程序适用于您的个人电话,并且您知道您有足够的空间。

原因是过去几年生产的许多手机几乎没有内部存储空间(例如我的nexus S内部有1g,外部有15g)。

正如其他人所说,您必须使用Expansion File通过Google Play分发,默认情况下会将其下载到外部目录。您无法移动,删除或重命名这些文件。因此,我认为不可能在内部存储它们(除非您制作冗余副本)。

如果文件是zip,您可以直接访问这些扩展文件中的媒体(这是Android推荐的方法)。

如果您打开包装并复制媒体,您应该将数据存储为单独的文件。如果在SQlite中存储大型blob数据(例如千兆字节),则需要考虑许多数据库问题。您可以使用数据库存储音乐的任何元数据,方法是将其与文件名/位置相关联。但如果你只想存储音乐,文件系统就足够了。

如果您希望其他应用可以访问您的音乐,请使用内置的Android音乐目录(下面的代码),然后将其存储在android / data / com.name.package下。

public File getMusicStorageDir(String albumName) {
    // Get the directory for the user's public pictures directory.


    File file = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_MUSIC), albumName);
    if (!file.mkdirs()) {
        Log.e(TAG, "Directory not created");
    }
    return file;
}

答案 2 :(得分:-2)

恕我直言你必须使用sqlite数据库,没有太多其他选项..也许你可以考虑云存储和流媒体播放。但这会使事情复杂化。试试sql lite解决方案,这里[http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html]你可以在几分钟内实现它。干杯!