android 获取本地歌曲代码
时间: 2023-11-29 10:06:32 浏览: 46
以下是 Android 获取本地歌曲列表的代码:
```java
public List<Song> getLocalSongs() {
List<Song> songs = new ArrayList<>();
// 查询条件
String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0";
// 查询字段
String[] projection = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DATA
};
// 查询
Cursor cursor = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
null,
null
);
if (cursor != null) {
while (cursor.moveToNext()) {
// 获取歌曲信息
Song song = new Song();
song.setId(cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID)));
song.setTitle(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
song.setArtist(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)));
song.setAlbum(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)));
song.setDuration(cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION)));
song.setPath(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)));
// 添加到列表
songs.add(song);
}
cursor.close();
}
return songs;
}
```
这个方法会返回一个包含所有本地歌曲的 `List<Song>` 对象,其中 `Song` 是自己定义的一个实体类,包含了歌曲的各种信息,比如歌曲名称、演唱者、专辑、时长和文件路径等。