gpt4 book ai didi

android - 有没有办法获取当前播放歌曲的信息?

转载 作者:行者123 更新时间:2023-11-30 04:56:29 27 4
gpt4 key购买 nike

出于研究原因,我正在开发一个反射(reflect)第三方播放器应用播放器状态的应用。

我设法通过AudioManager了解了如何控制其他播放器的播放状态。 API,但我不知道如何获取任何其他播放器的当前歌曲信息,例如:

  • 歌曲名称;
  • 艺术家姓名,以及;
  • 当前歌曲位置。

有什么办法可以从 Android 获取这些数据吗?

最佳答案

根据我的研究,我只找到了一种方法来做到这一点,但不幸的是,这需要设备运行 Android >= 21 (Lollipop) 和用户的特殊许可 ( android.permission.BIND_NOTIFICATION_LISTENER_SERVICE )

使用 MediaSessionManager 可以知道设备上正在播放哪些媒体.为此,我们只需要获取 Activity 的 MediaController。有两种方式:

有了 Activity 的 MediaController ,我们可以通过它的可用函数从它们那里获取我们想要的信息。值得指出的是,每个播放器都以他们想要的方式填充其媒体 session 数据,因此很可能一个播放器几乎没有或根本没有有用数据,而另一个播放器有大量数据(Google 就是这种情况)播放音乐应用程序)。

我们可以强调的MediaController类的一些功能是:

值得注意的是,玩家可以将自定义数据放入 MediaController#getMetaData 包中。例如,Google Play Music 添加了其中两个:

  • “com.google.android.music.mediasession.METADATA_KEY_QUEUE_SIZE”,以及;
  • “com.google.android.music.mediasession.METADATA_KEY_QUEUE_POSITION”

调试可能是您了解它们的最好 friend 。


另一种奇特的实现方式是使用 MediaBrowserService .可以在这个article中进行详细阅读.


如果您知道更好的方法,特别是如果它不需要 android.permission.BIND_NOTIFICATION_LISTENER_SERVICE 权限,我们非常欢迎您贡献 :)

关于android - 有没有办法获取当前播放歌曲的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59052978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com