我正在尝试从播放列表中获取歌曲,然后在 android 中播放。
我能找到的所有答案都依赖于
MediaStore.MediaColumn.DATA
找到文件路径,然后将其提供给 MediaPlayer。
但是当我尝试这样做时,我不断收到“invalid column _data”异常。我仍然可以查询有关这首歌的其他内容,例如“AUDIO_ID”。所以我的问题是,是否可以只播放已知“AUDIO_ID”的歌曲?如何?或者我是否缺少“数据”的东西,因为其他人都可以使用它。
这是我获取播放列表的代码。
private Cursor getPlaylistCursor() {
String[] proj = { MediaStore.Audio.Playlists._ID,MediaStore.Audio.Playlists.NAME };
Uri playlistUri = Uri.parse("content://com.google.android.music.MusicConten/playlists");
Cursor playlistCursor = getContentResolver().query(playlistUri, proj,null, null, null);
playlistCursor.moveToFirst();
return playlistCursor;
}
这就是我正在为获取歌曲所做的工作,正如我所说,我无法查询“数据”,如果将“数据”参数添加到投影中,我会遇到异常。
private void getSongListCursor(Long playlistID) {
String[] proj2 = { MediaStore.Audio.Playlists.Members.TITLE,
MediaStore.Audio.Playlists.Members.AUDIO_ID };
String playListRef = "content://com.google.android.music.MusicContent/playlists/"
+ playlistID + "/members";
Uri songUri = Uri.parse(playListRef);
Cursor songCursor = getContentResolver().query(songUri, proj2, null,
null, null);
}
所以现在,我有歌曲的音频 ID,我该如何播放?