【发布时间】:2016-02-16 14:57:20
【问题描述】:
我的平板电脑 SD 卡上有一个名为“/Android/data/com.example.android.app/files”的目录。我只是手动创建它,因为我不知道如何测试我的应用程序的这方面。我将文件名存储在 sqlite 数据库中,例如“/folder1/audio1.mp3”、“/folder2/audio1.mp3”等...这些文件具有相同的名称,但位于不同的文件夹中,因为它们是相同的东西是不同的语言。我在 SD 卡上的“/Android/data/com.example.android.app/files”目录中有这些文件夹(文件夹 1 和文件夹 2)和所有 mp3 文件。
所以,我从数据库中获取文件名并尝试使用以下命令访问 SD 卡上的文件夹:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/data/com.example.android.app/files";
这基本上最终使路径“storage/Android/data/com.example.android.app/files”。
现在,在早期开发过程中,我的 raw 文件夹中确实有一些 mp3 文件,但最终会有太多文件无法保存在该文件夹中,所以我开始研究从 SD 卡中获取它们。当我生吃它们时,我是这样得到的:
rid = getResources().getIdentifier(filname, "raw", "com.example.android.app");
现在,随着 SD 卡上的文件,更改为:
filename = "/folder1/audio.mp3"
而不是“原始”我有:
"storage/Android/data/com.example.android.app/files"
基本上是这样玩的:
AssetFileDescriptor afd = mContext.getResources().openRawResourceFd(rid);
mMP.reset();
mMP.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mMP.prepare();
mMP.start();
afd.close();
但是,现在似乎没有一种方法可以以同样的方式工作。
你能从 SD 卡上的 mp3 文件中获取 resourceid 吗?这甚至是我现在这样做的适当方式吗?无论源是内部存储器还是外部存储器,我应该以不同的方式播放它们吗?
完全糊涂了。
编辑: 我确实找到了this,这可能会有所帮助……但它可能只有等式。
编辑2: 我正在寻找here。它使用我认为不是我想要的媒体存储。
【问题讨论】:
标签: android mp3 sd-card playback