在Android中播放给定Audio_id的歌曲

时间:2013-02-25 17:14:04

标签: android playlist

我正试图从播放列表中获取一首歌然后在Android中播放。

我能找到的所有答案都依赖于

MediaStore.MediaColumn.DATA

找到文件路径,然后将其提供给MediaPlayer。

但是当我尝试这样做时,我一直收到“无效列_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,我该怎么玩?

1 个答案:

答案 0 :(得分:1)

一切皆有可能; - )

我的方法是使用Google Play音乐服务器获取与所选歌曲ID对应的流媒体网址。如果您需要有关身份验证的帮助并使用Google Play音乐的非官方API启动,请告诉我。