【问题标题】:Android: Things I am not clear about MediaSessionManager and RemoteControllerAndroid:关于 MediaSessionManager 和 RemoteController 的事情我不清楚
【发布时间】:2016-11-12 02:58:45
【问题描述】:

我尝试浏览网络以查看 MediaSessionManager 的作用以及用于和阅读 RemoteController(自 API 21 以来已弃用),以便查看这些 api 是否可以解决我的问题。

目前,我正在使用 AudioManger 并发送关键事件以停止/暂停/播放来自其他音乐播放器的当前音频......它确实可以完成这项工作。现在我想知道它是否可以用于媒体播放器,例如播放视频的 YouTube 应用,而我在其他设备上的应用可以像遥控器一样控制第二台设备上的视频播放。

我最终阅读了MediaSessionManager。它为当前正在播放的音乐播放器提供所有活动的媒体会话。我不确定它是否是解决上述情况的正确解决方案。由于我正在使用 Android 4.4.2,我认为 MediaSessionManager 可能不是正确的方法,所以我找到了一个叫做 RemoteController 的东西,但不确定它是如何工作的,以及它是否有助于解决我的问题

这里的东西太多了,我不知道从哪里开始。

【问题讨论】:

    标签: android remote-control android-mediasession mediaplayback


    【解决方案1】:

    RemoteController 和可通过MediaSessionManager 检索的MediaController 实例都仅限本地 - 它们允许设备上的一个应用程序控制另一个应用程序的播放。

    如果您只支持 API 21+ 设备,MediaSessionManagerRemoteController 更容易使用和可靠,但如果您还想支持 KitKat 设备,那么除了RemoteController 之外别无选择。

    当然,一旦用户在您想要控制的设备上启用了NotificationListenerService,您就可以构建您想要将媒体状态发送到其他控制设备并将命令发送回设备的任何设备到设备通信协议你想控制。但是,该基础架构将是您的应用所独有的 - 没有内置类可以做到这一点。

    【讨论】:

    • 感谢 Coz 目前我正在使用 Thrift 向接收设备发送诸如播放、暂停等命令的枚举,并让接收器应用程序通过向音频管理器 dm 发送关键事件来处理通信.dispatchKeyEvent 或其他内容到当前音乐播放器。如果 RemoteController 和 NotificationListenerService 可以处理,是否有一个简单的教程让我开始。再次感谢。
    • 好吧,如果你只是想发送命令,那么 dispatchKeyEvent 就足够了。如果您还想从正在播放的应用中获取媒体信息,那么您只需要更多内容
    【解决方案2】:

    您可以使用

    轻松创建待处理的 Intent 以由接收控制器处理
    MediaButtonReceiver.buildMediaButtonPendingIntent()
    

    并添加

    MediaButtonReceiver.handleIntent()
    

    在您的接收者代码中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 2017-03-28
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多