Android音乐播放器-读取SD卡中歌曲
时间: 2023-08-04 07:03:56 浏览: 250
android读取sd卡中音乐文件列表
3星 · 编辑精心推荐
要读取SD卡中的歌曲,你需要先获取读取SD卡的权限,可以通过在AndroidManifest.xml文件中添加如下代码实现:
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
然后,你可以使用MediaStore类来获取SD卡中的音乐文件,如下所示:
```java
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
String[] projection = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.DURATION
};
Cursor cursor = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
null,
null);
if (cursor != null) {
while (cursor.moveToNext()) {
// 获取音乐文件的相关信息
long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
String displayName = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
// 在这里处理获取到的音乐文件信息
}
cursor.close();
}
```
上述代码中,我们先定义了一个查询条件 selection,然后在 projection 数组中指定我们需要获取的音乐文件信息,接着通过 getContentResolver().query() 方法查询 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,获取到 Cursor 对象,最后通过 Cursor 对象遍历获取到的音乐文件信息。
需要注意的是,获取到的音乐文件的路径存储在 DATA 列中,我们可以通过这个路径来播放音乐。同时,还需要给应用程序授予读取SD卡的权限。
阅读全文