在Android中获取当前播放音频的METADATA

时间:2011-10-06 07:24:01

标签: android

我已经创建了一个应用程序,可以在FROYO的mediaPlayBackService的帮助下获取当前播放音频的METADATA。

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

我有什么方法可以使用此服务或以其他方式绑定当前播放音频的META。

谢谢,

Swapnil

1 个答案:

答案 0 :(得分:0)

我找到了一个获得当前播放歌曲的METADATA的解决方案。

获取元数据

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

  2. 使用上述IntentFilter

  3. 注册我们的应用程序
  4. 在onReceive函数中,我们将获得如下的包:

    Bundle bundle = intent.getExtras();
    
  5. 此捆绑包将包含新的/已更改的MetaData。我们可以像

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

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

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

    谢谢, Swapnil