2012-03-11 48 views
2

我想知道我的特定MediaPlayer實例是否正在播放聲音/音樂。 MediaPlayer有isPlaying方法,但即使播放器正在緩衝而不播放,它也會返回true。Android知道音樂是否在MediaPlayer的特定實例中播放

任何想法如何知道MediaPlayer 真的播放聲音?

謝謝。

+0

可以使用MediaPlayer.OnBufferingUpdateListener告訴你什麼嗎? – dldnh 2012-03-11 16:28:52

+0

也許這將有助於:http://stackoverflow.com/questions/7499037/android-mediaplayer-chopping-in-background – dldnh 2012-03-11 16:30:21

+0

我知道AudioManager可以使用,但它是一般的,而不是一個特定的MediaPlayer。 – 2012-03-11 16:32:54

回答

2

可以通過isMusicActive()方法由相應的方法檢查的AudioPlayer的狀態。 的代碼片段如下:

AudioManager ar = (AudioManager) getSystemService(AUDIO_SERVICE); 
if(ar.isMusicActive()) { 
    //used 
} 
+1

嘗試了它,並且與MediaPlayer.isPlaying()一樣,即使音樂沒有播放(如緩衝),該值仍然爲真。 – 2012-03-12 09:28:12

+1

此外,它是一個過於通用的方法,不會查詢特定的MediaPlayer實例。 – 2012-03-12 09:31:53

+0

我有一個問題,當我停止mediaplayer它不停止,而再次打開應用 – 2013-01-11 05:33:03