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

问题描述 投票:1回答:1

出于研究原因,我正在开发一个反映第三方播放器应用程序播放器状态的应用程序。

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

  • 歌曲名称;
  • 艺术家名称和;
  • 当前歌曲位置。

有什么办法可以从Android提取此数据吗?

android android-mediaplayer android-audiomanager
1个回答
0
投票

从我的研究中,我仅找到一种方法来执行此操作,但不幸的是,该方法要求设备运行Android> = 21(Lollipop)并获得用户的特殊许可(AudioManager

使用android.permission.BIND_NOTIFICATION_LISTENER_SERVICE可以知道设备上正在播放哪种媒体。为此,我们所需要做的就是以两种方式获取活动的android.permission.BIND_NOTIFICATION_LISTENER_SERVICE

手握有效的MediaController,我们可以通过其可用功能从中获取所需的信息。值得一提的是,每个播放器都按照他们想要的方式填充其媒体会话数据,因此很可能一个播放器几乎没有或根本没有有用的数据,而另一个播放器却有大量的数据(Google就是这种情况)播放音乐应用)。

我们可以突出显示的MediaController类的一些功能是:

很高兴注意到玩家可以将自定义数据放入MediaController捆绑包中。例如,Google Play音乐添加了两个:

调试可能是认识他们的最好的朋友。


实现此目标的另一种理想方式是通过使用MediaController#getMetaData。可以在此MediaController#getPlayerState中进行详细阅读。


如果您知道一种更好的方法,特别是如果不需要MediaController#getPlayerState许可,欢迎您提供帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.