Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中播放具有给定音频id的歌曲_Android_Playlist - Fatal编程技术网

在android中播放具有给定音频id的歌曲

在android中播放具有给定音频id的歌曲,android,playlist,Android,Playlist,我正在尝试从播放列表中获取一首歌曲,然后在android中播放 我能找到的所有答案都依赖于 MediaStore.MediaColumn.DATA 查找文件路径,然后将其提供给MediaPlayer 但当我尝试这样做时,我不断得到“无效列数据”异常。我仍然可以查询有关歌曲的其他内容,如“音频ID”。所以我的问题是,是否有可能只播放已知“音频ID”的歌曲?怎么用?或者是我在“数据”中遗漏了什么,因为其他人都能使用它 这是我获取播放列表的代码 private Cursor getPlaylistC

我正在尝试从播放列表中获取一首歌曲,然后在android中播放

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

MediaStore.MediaColumn.DATA
查找文件路径,然后将其提供给MediaPlayer

但当我尝试这样做时,我不断得到“无效列数据”异常。我仍然可以查询有关歌曲的其他内容,如“音频ID”。所以我的问题是,是否有可能只播放已知“音频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,如何播放它?

一切都有可能;-)


我的方法是使用Google Play Music服务器获取与所选歌曲ID对应的流式URL。如果您需要身份验证方面的帮助并使用Google Play Music的非官方API快速启动,请告诉我。

我正在尝试使用Google Play Music服务将URL拉至流式歌曲,但是我在使用OAuth2.0时遇到了身份验证问题。你是如何让这些都发挥作用的?@adamacdo使用
AccountManager#getAuthToken
sj
作为authType,然后在
https://play.google.com/music/listen?hl=en&u=0
授权
标题设置为
GoogleLogin auth=
。如果可以,您应该收到
sjsayd
xt
cookies,这些cookies应该用于进一步的通信。