在做Android游戲的時候,游戲音樂的添加是必不可少的,我就自己的理解說說添加背景音樂的一些知識 網上好多關於背景音樂添加用到的類:MediaPlayer,SoundPool,AudioManager的資料,可是有時候解決不了我們在開發中遇到的問題 我主要講述一下調節音量這方面的經驗吧 1:Android調節音量有很多可以調節系統的音量,媒體的音量,鬧鍾的音量,這時就需要用到AudioManager類 首先是得到AudioManager實例: 調整音量方法有兩種,一種是漸進式,即像手動按音量鍵一樣,一步一步增加或減少,另一種是直接設置音量值. 首先是步進的方法: public void adjustStreamVolume (int streamType, int direction, int flags) 解釋一下三個參數 第一個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) 第一個和第三個參數與上面的相同,第二個參數是一個音量的int值,getStreamMaxVolume(int streamType)得到的是該類型音量的最大值,可以根據這個值計算你需要的音量,我這里直接調到最大. 這種音量調節的方法實際上調節的是手機系統或者媒體的音量,哪如果我想實現只調節游戲的音量,而並不改變系統或者媒體的音量怎么辦,也就是說,我在游戲中設置了一個Seekbar通過seekbar的移動來調節游戲的聲音,注意只是游戲的聲音,這時我們就想到了mediaplayer的setVolume()方法,也就是我們只是改變mediaplayer的音量而並沒有修改系統的,這樣就可以實現了 |