1. 程式人生 > >android調節聲音大小

android調節聲音大小

狀態 不變 android 背景 sound tab ext 鈴聲 comment

android調節聲音大小


1.背景音樂的一些知識

網上好多關於背景音樂添加用到的類:
MediaPlayer,SoundPool,AudioManager的資料,可是有時候解決不了我們在開發中遇到的問題
我主要講述一下調節音量這方面的經驗吧

1:Android調節音量有很多可以調節系統的音量,媒體的音量,鬧鐘的音量,這時就需要用到AudioManager類

首先是得到AudioManager實例:
  • 1
  • 2
    AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
  • 1

2.調整音量方法有兩種,一種是漸進式,即像手動按音量鍵一樣,一步一步增加或減少,另一種是直接設置音量值.

1.首先是步進的方法:

**public void adjustStreamVolume (int streamType, int direction, int flags); **
  • 1
  • 2
    am.adjustStreamVolume (AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
  • 1
  • 解釋一下三個參數

    第一個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 調整時顯示音量條,就是按音量鍵出現的那個

2.直接設置音量值得方法:

public void setStreamVolume (int streamType, int index, int flags) {
    am.setStreamVolume(AudioManager.STREAM_MUSIC, 
    /*修改第二個參數為一個固定的值,就是設置成功。
    下面的方法:獲取音樂類型的音頻流的最大值*/
    am.getStreamMaxVolume(AudioManager.STREAM_MUSIC), AudioManager.FLAG_PLAY_SOUND);
    }

android調節聲音大小