2011-10-06 125 views
3

我已經創建了一個應用程序,通過FROYO中的mediaPlayBackService獲取當前播放音頻的元數據。在Android中獲取當前播放音頻的元數據

現在,當我在GingerBread SDK上嘗試它時,mediaPlayBackService將作爲本地服務而崩潰。

有沒有什麼辦法可以用這個服務綁定,或者我可以通過其他方式獲得當前播放音頻的META。

感謝,

Swapnil

+1

有沒有,你可以分享你如何做,作爲即時通訊尋求做同樣的事情什麼辦法? – Peter

回答

0

我發現了一個解決方案,使當前播放的歌曲的元數據。

爲獲得元數據,

  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