在 FROYO 中的 mediaPlayBackService 的帮助下,我创建了一个应用程序来获取当前播放的音频的元数据。
现在,当我在 GingerBread SDK 上尝试它时,它崩溃了,因为 mediaPlayBackService 是本地服务。
有没有什么方法可以绑定(bind)这个服务,或者有什么其他方法可以获取当前播放的音频的 META。
谢谢,
交换尼尔
最佳答案
我找到了一种获取当前播放歌曲元数据的解决方案。
获取元数据,
使用以下操作创建一个 Intent 过滤器: PLAYSTATE_CHANGED META_CHANGED PLAYBACK_COMPLETE
用上面的 IntentFilter 注册我们的应用程序
在 onReceive 函数中,我们将按如下方式获取包:
Bundle bundle = intent.getExtras();
此包将包含新的/更改的元数据。我们可以像这样获取 TrackID
long trackId = (Long) bundle.get("id");
借助轨道 ID,我们可以查询数据库并获取正在播放的音频文件的其他详细信息。 (我没有测试过,但同一个包应该也提供音频文件的其他属性)
唯一的问题是,如果音频文件已经在播放(即在启动我们的应用程序之前),我们将不会在我们的应用程序启动时收到任何广播,因此没有可用的元数据,在下一次音频更改时我们将获得更新值。
希望这对所有寻找相同内容的人有所帮助。
谢谢, 交换尼尔
关于android - 获取Android中当前播放音频的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671289/