我的应用程序显示来自SD卡的歌曲列表。我想要能够在默认播放器上播放歌曲。我已经获取了有关歌曲的所有数据:ID、标题、专辑、艺术家、路径...
有没有办法启动默认播放器播放歌曲?
我尝试过以下方法:
1. 使用 Intent.CATEGORY_APP_MUSIC。我可以启动默认播放器,但无法设置歌曲。Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC) 打开默认的音乐应用程序。然而,intent.setData(Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id)) 抛出未找到意图的异常。
2. 使用不推荐使用的 MediaStore.INTENT_ACTION_MUSIC_PLAYER。未找到活动。Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER).setDataAndType(Uri.fromFile(songFile), "audio/*")
3. 使用 INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH。启动搜索,但不是歌曲,说无法准备播放音乐的混音。但是,它可以从Google现在工作,所以这可能是关键。Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH).putExtra(SearchManager.QUERY, name)
4. 使用 ACTION_VIEW。它可以工作,但会启动一个简化版本的播放器,我想要完整的播放器。
注意:我想要启动外部播放器,而不是在我的应用程序中。
更新:看起来谷歌现在硬编码支持Play音乐和YouTube。
有没有办法启动默认播放器播放歌曲?
我尝试过以下方法:
1. 使用 Intent.CATEGORY_APP_MUSIC。我可以启动默认播放器,但无法设置歌曲。Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC) 打开默认的音乐应用程序。然而,intent.setData(Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id)) 抛出未找到意图的异常。
2. 使用不推荐使用的 MediaStore.INTENT_ACTION_MUSIC_PLAYER。未找到活动。Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER).setDataAndType(Uri.fromFile(songFile), "audio/*")
3. 使用 INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH。启动搜索,但不是歌曲,说无法准备播放音乐的混音。但是,它可以从Google现在工作,所以这可能是关键。Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH).putExtra(SearchManager.QUERY, name)
4. 使用 ACTION_VIEW。它可以工作,但会启动一个简化版本的播放器,我想要完整的播放器。
注意:我想要启动外部播放器,而不是在我的应用程序中。
更新:看起来谷歌现在硬编码支持Play音乐和YouTube。