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

问题描述:

我已经创建了一个应用程序,通过FROYO中的mediaPlayBackService获取当前播放音频的元数据。在Android中获取当前播放音频的元数据

现在,当我在GingerBread SDK上尝试它时,mediaPlayBackService将作为本地服务而崩溃。

有没有什么办法可以用这个服务绑定,或者我可以通过其他方式获得当前播放音频的META。

感谢,

Swapnil

+1

有没有,你可以分享你如何做,作为即时通讯寻求做同样的事情什么办法? – Peter

我发现了一个解决方案,使当前播放的歌曲的元数据。

为获得元数据,

  1. 创建具有下列行为一个意图过滤器: PLAYSTATE_CHANGED META_CHANGED PLAYBACK_COMPLETE

  2. 以上的IntentFilter

  3. 在的onReceive函数,我们将注册申请获得捆绑如下:

    Bundle bundle = intent.getExtras(); 
    
  4. 此捆绑包将包含新/更改的元数据。我们可以得到的TrackID像

    long trackId = (Long) bundle.get("id"); 
    
  5. 随着轨道ID的帮助下,我们可以查询数据库并获取正在播放的音频文件的其他细节。 (我没有测试过,但同捆应该给音频文件的其他属性也是如此)

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

希望这有助于所有人都在寻找相同的东西。

感谢, Swapnil