我的应用程序显示来自SD卡的歌曲列表。我希望能够在默认播放器上播放歌曲。我已经获得了关于这首歌的所有数据:id,title,album,artist,path ......
有没有办法启动默认播放器播放歌曲?
我尝试了什么:
使用Intent.CATEGORY_APP_MUSIC
。我可以启动默认播放器,但无法设置歌曲。
Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_MUSIC)
打开默认音乐应用。
但是intent.setData(Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id))
会抛出未找到intent的异常。
使用已弃用的MediaStore.INTENT_ACTION_MUSIC_PLAYER
。找不到活动。
Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER).setDataAndType(Uri.fromFile(songFile), "audio/*")
INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH
。启动搜索,但不是歌曲,说不能准备混合播放音乐。但是,它现在可以在Google上运行,因此它可能是关键。
Intent(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH).putExtra(SearchManager.QUERY, name)
ACTION_VIEW
。它有效,但它推出了一个紧凑版本的播放器,我想要完整的播放器。
注意:我想启动外部播放器,而不是我的应用。
更新:看起来像Google Now硬编码的Play Music和Youtube支持。
答案 0 :(得分:4)
如果您想在设备上启动默认音乐播放器应用,请尝试以下操作:
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(YOUR_SONG_URI);
intent.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(intent);
答案 1 :(得分:1)
它正在推出一个紧凑版本,因为该应用程序已经实现了这种方式, 你可以找到很多用
打开完整应用程序的第三方应用程序Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
File file = new File(YOUR_SONG_URI);
intent.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(intent);
你已经尝试过这个
答案 2 :(得分:0)
尝试这样简单的事情:
MediaPlayer mp = new MediaPlayer();
mp.setLooping(true);
try {
mp.setDataSource(mFile); //mFile is the path to your mp3 file
} catch (Exception e) {
e.printStackTrace();
}
try {
mp.prepare();
} catch (Exception e) {
e.printStackTrace();
}
mp.start();
MadiaPlayer的另一个例子和文件保存在res / raw /目录中:
MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.sound_file_1);
mediaPlayer.start(); // no need to call prepare(); create() does that for you
更多关于:http://developer.android.com/guide/topics/media/mediaplayer.html
答案 3 :(得分:0)
Intent musicIntent = new Intent();
//use Action VIEW to launch app
musicIntent.setAction(Intent.ACTION_VIEW);
String mimeType = getMimeTypeFromFile(); // in your case it is audio
Uri uri = " yourfile uri";
musicIntent.setDataAndType(uri,mimeType);
startActivity(intent);
如果更改了mime类型,将打开默认视图应用程序,将打开视频mime型视频播放器,音频播放器和图像库。
如果有多个玩家,则会打开Resolver
个活动。
不要忘记抓住ActivityNotFoundException
在ACTION_VIEW的音乐播放器中,优先调用AudioPreview activty。还有其他活动可以处理此操作,只需检查一次操作" com.android.music.PLAYBACK_VIEWER
"而不是ACTION_VIEW或它。