Android:关于 MediaSessionManager 和 RemoteController 我不清楚的地方

Android: Things I am not clear about MediaSessionManager and RemoteController

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

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

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

这里东西太多,不知从何说起。

RemoteControllerMediaController instances retrievable through MediaSessionManager 仅限本地 - 它们允许设备上的一个应用程序控制另一个应用程序的播放。

如果你只支持 API 21+ 设备,MediaSessionManagerRemoteController 更容易使用和可靠,但如果你还想支持 KitKat 设备,那么那里除了 RemoteController.

别无选择

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

您可以使用

轻松创建要由接收控制器处理的挂起 Intent
MediaButtonReceiver.buildMediaButtonPendingIntent()

并添加

MediaButtonReceiver.handleIntent()

在您的接收者代码中