2013-12-18 33 views
0

我已經看過音頻管理器在doc。每當任何音頻/視頻(媒體)將在設備中播放時,我都希望得到通知。那麼廣播接收機是否有任何行動來獲取媒體的歷史?我想,我可以從使用輔助功能的通知更改中獲得它。但我不想使用可訪問性,因爲我想跟蹤將在任何默認媒體播放器或設備中的任何已安裝的軟件中播放的所有媒體。有什麼辦法可以做到嗎?使用Android中的廣播獲取當前播放的媒體信息

我已經嘗試了下面的代碼獲取有關媒體軌道的信息。但它僅適用於google play music。如何從所有默認/已安裝的媒體播放器獲取曲目信息。

public class MainActivity extends Activity { 

    public static final String SERVICECMD = "com.android.music.musicservicecommand"; 
    public static final String CMDNAME = "command"; 
    public static final String CMDTOGGLEPAUSE = "togglepause"; 
    public static final String CMDSTOP = "stop"; 
    public static final String CMDPAUSE = "pause"; 
    public static final String CMDPREVIOUS = "previous"; 
    public static final String CMDNEXT = "next"; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     IntentFilter iF = new IntentFilter(); 
     iF.addAction("com.android.music.metachanged"); 
     iF.addAction("com.android.music.playstatechanged"); 
     iF.addAction("com.android.music.playbackcomplete"); 
     iF.addAction("com.android.music.queuechanged"); 

     registerReceiver(mReceiver, iF); 
    } 

    private BroadcastReceiver mReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) 
     { 
      String action = intent.getAction(); 
      String cmd = intent.getStringExtra("command"); 
      Log.d("mIntentReceiver.onReceive: ", action + "/" + cmd); 
      String artist = intent.getStringExtra("artist"); 
      String album = intent.getStringExtra("album"); 
      String track = intent.getStringExtra("track"); 
      Log.d("Music","artist: "+artist+"\n album: "+album+"\n track: "+track); 
     } 
    }; 

任何幫助將不勝感激!

回答

1

要回答,沒有絕對沒有廣播的事件歌曲在Android中播放。

雖然,音頻管理器確實有它告訴你,如果任何事情是在設備正在播放

AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE); 
if(manager.isMusicActive()) 
{ 
    // Something is being played. 
} 

http://developer.android.com/reference/android/media/AudioManager.html#isMusicActive%28%29

除了比這一個API,你也可以使用供應商如果通過各種播放器如暴露谷歌玩弄最近播放哪首歌曲,但它只會在提供商被曝光時才起作用。

+0

感謝您的建議。我想知道我如何獲得有關正在播放的「某物」的信息? –

+0

正如我在回答中所說的那樣,在那裏無法找出正在播放的內容。 – Techfist

相關問題