2013-04-26 50 views
3

在我的應用程序中,我試圖在將音頻剪輯播放到最高級別時設置音量,但它似乎沒有任何影響。我必須手動將音量調整到最高水平。這裏是我的代碼:在Android中將音量設置爲最大值

MediaPlayer mp = new MediaPlayer(); 
mp.setVolume(1, 1); 

回答

8

AudioManager

int origionalVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); 
mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0); 
+1

錯誤。它改變用戶設置 – 2013-04-26 06:00:40

+0

它的工作對我來說 – 2013-04-26 06:01:46

+0

那麼,MediaPlayer的setVolume的目的是什麼? – AndroidDev 2013-04-26 06:02:45

4

使用此

它S對於總量

AudioManager mgr = (AudioManager) appContext.getSystemService(Context.AUDIO_SERVICE); 
     int valuess = 9;//range(0-15) 
mgr.setStreamVolume(AudioManager.STREAM_MUSIC, valuess, 0); 

它是左右,而當前正在播放的歌曲......

AudioTrack m = (AudioTrack) appContext.getSystemService(Context.AUDIO_SERVICE); 
m.setStereoVolume(leftVolume, rightVolume); 

它適合我。

+0

我得到一個java.lang.ClassCastException:android.media.AudioManager不能轉換爲android.media。 AudioTrack,當我嘗試當前歌曲的解決方案。任何想法爲什麼? – SjoerdvGestel 2013-10-01 14:55:21

+0

檢查導入你導入錯誤的音頻管理器.... – 2013-10-03 04:01:37

+0

你有兩次相同的getSystemService(Context.AUDIO_SERVICE)第一次作爲AudioManager(正確),第二次作爲AudioTrack(不正確)流失我假設第二個服務應該是別的AUDIO_SERVICE(甚至其他方法) – 2014-10-27 23:38:49

1

使用AudioManager可以控制媒體播放器的音量。

AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, 20, 0); 

也從MediaPlayer的

public void setVolume (float leftVolume, float rightVolume) 

例如,你可以使用這個方法,

int maxVolume = 100; 
float log1=(float)(Math.log(maxVolume-currVolume)/Math.log(maxVolume)); 
mp.setVolume(1-log1); 
+0

如何獲取currVolume? – Fer 2016-11-29 07:23:30