在我的Android应用程序中,我希望用户能够选择专辑,艺术家和播放列表,然后发送默认媒体播放器的意图来播放它们。
我以标准方式获取ID:
final Uri exAudioUri = Uri.parse("content://com.google.android.music.MusicContent/playlists");
final String[] proj = { MediaStore.Audio.Playlists._ID, MediaStore.Audio.Playlists.NAME };
final Cursor musiccursor = ctx.getContentResolver().query(exAudioUri, proj, null, null, null);
String name = null;
String id = null;
if (musiccursor != null && musiccursor.getCount() > 0) {
while (musiccursor.moveToNext()) {
name = musiccursor.getString(musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists.NAME));
id = musiccursor.getString(musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Playlists._ID));
对于播放列表我使用以下意图:
Intent playMediaIntent = new Intent(Intent.ACTION_VIEW);
playMediaIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
playMediaIntent.setType(MediaStore.Audio.Playlists.CONTENT_TYPE);
playMediaIntent.putExtra("playlist", playlistID);
Google Play音乐应用拦截此功能并成功播放播放列表。
尝试对相册执行相同的操作会给我一个未找到异常的活动:
Intent playMediaIntent = new Intent(Intent.ACTION_VIEW);
playMediaIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//playMediaIntent.setType("vnd.android.cursor.dir/track");
playMediaIntent.setType(MediaStore.Audio.Albums.CONTENT_TYPE);
//playMediaIntent.setData(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI);
playMediaIntent.putExtra("album", albumID);
我知道这些都是未记录的方法,可能会有所变化,但我不想实现我自己的整个媒体播放器,当用户已经选择了他们的最爱....
有人可以建议媒体播放器拦截的任何“标准”代码吗?
或者,有没有办法从专辑(或艺术家)获取所有歌曲,并发送包含一系列轨道URI的数据的意图来播放或排队?
在这张照片上找到了谷歌/ Stackoverflow的深度,并画了一个空白......
请帮忙!我提前谢谢你。