android - 获取Android中当前播放音频的元数据

标签 android

在 FROYO 中的 mediaPlayBackService 的帮助下,我创建了一个应用程序来获取当前播放的音频的元数据。

现在,当我在 GingerBread SDK 上尝试它时,它崩溃了,因为 mediaPlayBackService 是本地服务。

有没有什么方法可以绑定(bind)这个服务,或者有什么其他方法可以获取当前播放的音频的 META。

谢谢,

交换尼尔

最佳答案

我找到了一种获取当前播放歌曲元数据的解决方案。

获取元数据,

  1. 使用以下操作创建一个 Intent 过滤器: PLAYSTATE_CHANGED META_CHANGED PLAYBACK_COMPLETE

  2. 用上面的 IntentFilter 注册我们的应用程序

  3. 在 onReceive 函数中,我们将按如下方式获取包:

    Bundle bundle = intent.getExtras();
    
  4. 此包将包含新的/更改的元数据。我们可以像这样获取 TrackID

    long  trackId = (Long) bundle.get("id");
    
  5. 借助轨道 ID,我们可以查询数据库并获取正在播放的音频文件的其他详细信息。 (我没有测试过,但同一个包应该也提供音频文件的其他属性)

唯一的问题是,如果音频文件已经在播放(即在启动我们的应用程序之前),我们将不会在我们的应用程序启动时收到任何广播,因此没有可用的元数据,在下一次音频更改时我们将获得更新值。

希望这对所有寻找相同内容的人有所帮助。

谢谢, 交换尼尔

关于android - 获取Android中当前播放音频的元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671289/

相关文章:

安卓录音

android - 以编程方式检测拨出电话何时开始回铃音(响铃给其他人)

Android appWidgetProvider onEnabled 从未在平板电脑上调用过

android - 在 Android Touch 事件中看不到点击涟漪效应

java - 在 Android 中等待多个回调

android - 项目在 Android Studio 预览中显得更大?

android - 添加没有敏感权限的新版本时出现"release declaring sensitive permissions"错误

android - Opencv全屏使用CameraBridgeViewBase android

android - Android 应用程序和服务器之间哪个更好? socket 还是定时器?

java - "can' t 提取 token 和 secret 无效的消费者抄写员“