2013-11-27 100 views
15

我很想檢索MediaPlayer的當前音量,但沒有看到任何像'getVolume()'這樣的方法。有一個setVolume(),所以我有點困惑,爲什麼他們不提供讀取這個屬性的方法。Android MediaPlayer獲得音量

我看到建議使用AudioManager讀取卷的一些其他答案:

int volumeLevel = am.getStreamVolume(AudioManager.STREAM_MUSIC);  
    int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 

    float volume = (float)volumeLevel/maxVolume; 

然而,這似乎返回該設備體積爲所有的音樂,而不是容積我與'設置setVolume()'...有沒有辦法直接從MediaPlayer獲取音量?我想也許我需要用getAudioSessionId()做些什麼。謝謝。

+0

你見過這篇文章嗎? http://stackoverflow.com/questions/4593552/how-do-you-get-set-media-volume-not-ringtone-volume-in-android – Joel

+0

是的getStreamVolume()似乎總是返回相同的值,即使在我使用MediaPlayer.setVolume()手動設置音量; –

+0

您是否找到了解決方案? AFAIK,你必須存儲當前的音量水平在你自己的變量。 –

回答

2

據我所知,這是默認的MediaPlayer不可能的。您需要擴展它並添加您自己的getVolume()方法以及跟蹤當前音量的變量。

+1

我們如何追蹤當前的數量?我試圖在擴展'MediaPlayer'的類中重寫'setVolume',但是這個方法從來沒有被調用過。 – DenisGL

+0

我認爲沒有'getVolume()'方法 – Leenah