java - 如何在android中播放内部和外部SD卡中的mp3文件?

标签 java android android-sdcard

我正在开发一个 mp3 播放器应用程序,它可以播放存在于内部 SD 卡中任何位置的 .mp3 文件。

我使用以下代码来获取内部存储中存在的 .mp3 文件。

ArrayList<File> inFiles = new ArrayList<File>();
File list[] = file.listFiles();
//Log.i("DIR", "PATH" +file.getPath());
for (int i = 0; i < list.length; i++) 
{
    // myList.add( list[i].getName() );
    File temp_file = new File(file.getAbsolutePath(),list[i].getName());
    //Log.i("DIR", "PATH" +temp_file.getAbsolutePath());
    if (temp_file.listFiles() != null) 
    {
        //Log.i("inside", "call fn");
        listfiles(temp_file);

    }
    else 
    {
        if (list[i].getName().toLowerCase().contains(".mp3"))
        {
            inFiles.add(list[i]);
        //Log.e("Music", list[i].getName());
        }
    }
}

我如何同样从外部 SD 卡获取 .mp3 文件?

最佳答案

你可以使用这行代码获取外部sdcard的根目录

File root = Environment.getExternalStorageDirectory();

现在你可以做与内部相同的事情了

ArrayList<File> inFiles = new ArrayList<File>();
File list[] = root.listFiles(); // here use the root object of File class to the list of files and directory from the external storage
//Log.i("DIR", "PATH" +file.getPath());
for (int i = 0; i < list.length; i++) 
{
    // myList.add( list[i].getName() );
    File temp_file = new File(file.getAbsolutePath(),list[i].getName());
    //Log.i("DIR", "PATH" +temp_file.getAbsolutePath());
    if (temp_file.listFiles() != null) 
    {
        //Log.i("inside", "call fn");
        listfiles(temp_file);

    }
    else 
    {
        if (list[i].getName().toLowerCase().contains(".mp3"))
        {
            inFiles.add(list[i]);
        //Log.e("Music", list[i].getName());
        }
    }
}

关于java - 如何在android中播放内部和外部SD卡中的mp3文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005566/

相关文章:

java - 文件下载器中基本访问认证的问题

Android获取所有可用的存储设备

发送包含 JAXB 元素的对象时出现 java.io.NotSerializedException

java - 从 IntelliJ 中的 groovy 测试文件创建 Java 类

android - 如何在 Manifest.json 中设置 minSdkVersion (Android/Ionic)

java - 不要在旋转时加载相关的横向/纵向布局

android - 为什么 AssetManger.list() 这么慢?

java - Android XML 解析错误 - "Couldn' t 打开 .../directory/container.xml"

Java多线程同步块(synchronized block)

java - 通过jsp调用存储过程时出错