【发布时间】:2013-04-15 04:55:18
【问题描述】:
Intent intent = new Intent();
ComponentName comp = new ComponentName("com.android.music","com.android.music.MediaPlaybackActivity");
intent.setComponent(comp);
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "audio/*");
startActivity(intent);
这是我用来在 Galaxy S3 以外的其他手机中打开三星播放器的代码。关于 Galaxy S3,这个包被替换为
ComponentName comp2 = new ComponentName("com.sec.android.app.music","com.sec.android.app.music.AudioPreview");
但在这种情况下,它仅用作音频预览,但在暂停时它会完成但我想像上面的音乐播放器一样播放。所以为此我用这个替换了 ComponentName 来打开音乐播放器
ComponentName comp2 = new ComponentName("com.sec.android.app.music",
"com.sec.android.app.music.MusicActionTabActivity");
但如果播放器不会播放我传递的网址。它只是打开了 S3 中的默认音乐播放器。我需要用安卓默认的音乐播放器播放文件。
【问题讨论】:
-
为什么不直接为 audo/mp3 创建一个意图并让用户选择使用什么应用启动它?
-
在这种情况下,当我们从手机中选择音乐播放器时,只会启用 AudioPreview 选项。歌曲在暂停时完成。我需要将播放歌曲推到后台
-
很遗憾安卓默认音乐播放器可能没有安装。您永远不能假设给定的应用程序是。更糟糕的是,不同型号的三星手机有不同的软件布局——它们都不使用相同的音乐播放器。即使是不同运营商上的 S3 也可能会更换音乐应用程序,例如,如果 Verizon 购买了一个并且他们希望三星使用它。你要求沿着这条路走下去的痛苦世界。这就是添加基于 MIME 类型的意图过滤器的原因。您最终将拥有数十个特殊数组,并随着时间的推移添加更多。我真的建议不要这样做。
-
你是对的.. 但我只是想知道是否有办法让我的歌曲使用默认音乐播放器排队并在后台通过意图播放。众所周知,我意识到进行此类实施的危险。谢谢
标签: android android-intent android-music-player