【问题标题】:How can i pass url to play song with samsung s3 inbuilt music player?如何通过 url 使用三星 s3 内置音乐播放器播放歌曲?
【发布时间】: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


【解决方案1】:

看 Android 正在使用 AudioPlaybackPreview 或其他命名活动来处理来自 fileManager 或任何其他地方的歌曲播放。

实际上,您想使用默认的 Playing 活动,用于显示所有控件和所有内容。亲爱的,无法使用该活动,因为它已链接到具有所有歌曲和所有路径数据的其他服务.这个正在播放的 Activity 可以控制 next atnd previous 和 all ,这与一个播放服务相关联。

第三件事是,据我所知,S3 几乎提供了相同的布局来从文件管理器播放歌曲或从任何其他活动播放。但问题是当你从那里返回时,它会停止播放歌曲

参考android音乐播放器源码,你就会明白为什么不能启动那个activity了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2012-04-16
    相关资源
    最近更新 更多