📜  如何从 Android 中的存储中获取音频文件?(1)

📅  最后修改于: 2023-12-03 14:51:44.944000             🧑  作者: Mango

如何从 Android 中的存储中获取音频文件?

在 Android 中,我们可以通过以下步骤来获取存储中的音频文件:

  1. 添加存储权限到 AndroidManifest.xml 文件中

在 AndroidManifest.xml 文件中添加以下内容,以获取对存储的读取权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  1. 获取存储中的音频文件

我们可以使用 MediaStore 类访问存储中的多媒体文件,包括音频、视频和图片。在此示例中,我们将演示如何获取存储中的音频文件。

// 获取存储中所有音频文件的 Uri
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;

// 指定需要获取的列
String[] projection = {
    MediaStore.Audio.Media._ID,
    MediaStore.Audio.Media.TITLE,
    MediaStore.Audio.Media.ARTIST,
    MediaStore.Audio.Media.DURATION,
    MediaStore.Audio.Media.DATA
};

// 进行查询
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);

// 遍历查询结果
if (cursor != null) {
    while (cursor.moveToNext()) {
        // 获取音频文件的 ID
        long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
        // 获取音频文件的标题
        String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
        // 获取音频文件的艺术家
        String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
        // 获取音频文件的时长
        long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
        // 获取音频文件的路径
        String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));

        // 处理获取到的音频文件信息
        // ...
    }

    // 关闭 Cursor
    cursor.close();
}

在上述代码片段中,我们首先通过 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 获取存储中所有音频文件的 Uri,然后指定需要获取的列并进行查询。在查询结果中,我们可以通过 Cursor 对象获取到每个音频文件的 ID、标题、艺术家、时长和路径等信息。最后,我们可以自定义处理获取到的音频文件信息。

以上就是从 Android 中的存储中获取音频文件的方法,希望对您有所帮助!