【问题标题】:Control Android Media Player控制安卓媒体播放器
【发布时间】:2011-09-03 00:28:57
【问题描述】:

我正在寻找一种方法来从我自己的服务中控制默认的 Android 媒体播放器。我有兴趣播放我的服务或活动中的媒体;我想控制现有的应用程序,它由一个活动 (MediaPlaybackActivity.java) 和更重要的是位于 packages/apps/Music/src/com/android/music/ 的服务 (MediaPlaybackService.java) 组成。理想情况下,我想要一个独立于 Android 版本的解决方案。

我已经弄清楚如何使用 Intents 进行暂停/播放/停止/下一个/上一个操作。我可以使用广播接收器拦截轨道更改事件。我还可以获得播放列表和每个播放列表的内容。 我想做的是指示MediaPlaybackService 播放特定的文件/歌曲。 同样,我不想在我的应用程序中播放这首歌;我希望 Android 默认媒体播放器播放它。

到目前为止,我已经尝试了两种方法:

  1. 我将 IMediaPlaybackService.aidl 文件从 packages/apps/Music/src/com/android/music 导入到我自己的应用程序中,并使用它来绑定到 MediaPlaybackService。在 Froyo 上,这很有效;我可以将路径传递给 openFile 方法,服务将播放该文件。但是,在 Gingerbread 上,我收到一个错误:Permission Denial: Accessing service ComponentInfo{com.google.android.music/com.android.music.MediaPlaybackService} from pid=17721, uid=10058 requires null。找到解决此错误的方法将是一个很好的临时解决方案,但它不是面向未来的。这项服务很可能会在未来的 Android 版本中再次发生变化。

  2. 通过 ACTION_VIEW Intent 启动媒体播放器。这也有效;但是,正如预期的那样,媒体播放器的 UI 被带到了最前面,这并不理想。

    意图意图 = new Intent(android.content.Intent.ACTION_VIEW); intent.setDataAndType(someUri, "audio/mp3"); 开始活动(意图);

还有其他方法可以做到这一点吗?我是否错过了指示媒体播放器播放特定歌曲的意图?或者,是否可以在后台启动一个活动,或者启动一个活动并立即切换回上一个活动?

【问题讨论】:

  • 嘿,我正在研究实现类似的东西。你说,“我已经弄清楚如何使用 Intents 进行暂停/播放/停止/下一个/上一个操作。”你能告诉我怎么做吗?非常感谢,谢谢。
  • @YoungMoney 要点是(您可以将 togglepause 替换为下一个、上一个、暂停或停止): Intent i = new Intent("com.android.music.musicservicecommand"); i.putExtra("command", "togglepause");发送广播(i);您可以随时查看MediaPlaybackService.java 了解更多详情。希望对您有所帮助。
  • @ianlh 遗憾的是,您评论中的链接不再有效(我知道它与问题没有直接关系)

标签: java android


【解决方案1】:

我正在寻找一种方法来从我自己的服务中控制默认的 Android 媒体播放器。

没有“默认的 Android 媒体播放器”。您所指的应用程序可能存在于某些设备上,而不会存在于其他设备上。 AFAICT,未来很少有设备会拥有您认为的“默认 Android 媒体播放器”——那些尚未运行设备制造商专有媒体播放器的设备可能拥有新的专有 Google 音乐应用。

【讨论】:

  • 好点。澄清一下,我所说的“默认 Android 媒体播放器”是指“音乐”应用程序。操纵这个播放器只是一个更大的应用程序的一个很小的功能。如果他们运行的设备没有此应用程序,或者用户选择不使用它,那很好。它主要只是一个增值功能。
【解决方案2】:

抱歉,没有支持的方式来执行此操作。您描述的所有内容都使用私有实现细节,并且正如您所见,它们并不健壮。如果你想播放音乐,你应该在你自己的应用程序中进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多