android調節聲音大小


在做Android游戲的時候,游戲音樂的添加是必不可少的,我就自己的理解說說添加背景音樂的一些知識
網上好多關於背景音樂添加用到的類:MediaPlayer,SoundPool,AudioManager的資料,可是有時候解決不了我們在開發中遇到的問題
我主要講述一下調節音量這方面的經驗吧
1:Android調節音量有很多可以調節系統的音量,媒體的音量,鬧鍾的音量,這時就需要用到AudioManager類
首先是得到AudioManager實例:
1 AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);

調整音量方法有兩種,一種是漸進式,即像手動按音量鍵一樣,一步一步增加或減少,另一種是直接設置音量值.
首先是步進的方法:
public void adjustStreamVolume (int streamType, int direction, int flags) 
1 am.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);

解釋一下三個參數
第一個streamType是需要調整音量的類型,這里設的是媒體音量,可以是:
STREAM_ALARM 警報
STREAM_MUSIC 音樂回放即媒體音量
STREAM_NOTIFICATION 窗口頂部狀態欄Notification,
STREAM_RING 鈴聲
STREAM_SYSTEM 系統
STREAM_VOICE_CALL 通話
STREAM_DTMF 雙音多頻,不是很明白什么東西
第二個direction,是調整的方向,增加或減少,可以是:
ADJUST_LOWER  降低音量
ADJUST_RAISE   升高音量
ADJUST_SAME  保持不變,這個主要用於向用戶展示當前的音量量時播
第三個flags是一些附加參數,只介紹兩個常用的
FLAG_PLAY_SOUND 調整音量時播放聲音
FLAG_SHOW_UI 調整時顯示音量條,就是按音量鍵出現的那個
然后是直接設置音量值的方法:
public void setStreamVolume (int streamType, int index, int flags) 
1 am.setStreamVolume(AudioManager.STREAM_MUSIC, am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND);

第一個和第三個參數與上面的相同,第二個參數是一個音量的int值,getStreamMaxVolume(int streamType)得到的是該類型音量的最大值,可以根據這個值計算你需要的音量,我這里直接調到最大.
這種音量調節的方法實際上調節的是手機系統或者媒體的音量,哪如果我想實現只調節游戲的音量,而並不改變系統或者媒體的音量怎么辦,也就是說,我在游戲中設置了一個Seekbar通過seekbar的移動來調節游戲的聲音,注意只是游戲的聲音,這時我們就想到了mediaplayer的setVolume()方法,也就是我們只是改變mediaplayer的音量而並沒有修改系統的,這樣就可以實現了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM