?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
AudioManager
版本:Android 3.2 r1
結(jié)構(gòu)
繼承關(guān)系
public class AudioManager extends Object
java.lang.Object
android.media.AudioManager
類概述
AudioManager類提供訪問音量和振鈴模式的控制。
用Context.getSystemService(Context.AUDIO_SERVICE)得到這個(gè)類的實(shí)例。
常量
public static final String ACTION_AUDIO_BECOMING_NOISY
廣播intent,提示應(yīng)用程序音頻信號由于音頻輸出的變化將變得“嘈雜”。例如,當(dāng)拔出一個(gè)有線耳機(jī),或斷開一個(gè)支持A2DP的音頻接收器,這個(gè)intent就會(huì)被發(fā)送,且音頻系統(tǒng)將自動(dòng)切換音頻線路到揚(yáng)聲器。收到這個(gè)intent后,控制音頻流的應(yīng)用程序會(huì)考慮暫停,減小音量或其他措施,以免揚(yáng)聲器的聲音使用戶驚奇。
常量值:"android.media.AUDIO_BECOMING_NOISY"
public static final String ACTION_SCO_AUDIO_STATE_CHANGED
廣播intent,表明藍(lán)牙SCO音頻連接狀態(tài)已改變。這個(gè)intent包含額外信息:EXTRA_SCO_AUDIO_STATE,它表明新的狀態(tài)是SCO_AUDIO_STATE_DISCONNECTED或SCO_AUDIO_STATE_CONNECTED。
參照
startBluetoothSco()
常量值:"android.media.SCO_AUDIO_STATE_CHANGED"
public static final int ADJUST_LOWER
減小鈴聲音量。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
常量值: -1 (0xffffffff)
public static final int ADJUST_RAISE
增大鈴聲音量。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
常量值: 1 (0x00000001)
public static final int ADJUST_SAME
保持先前的鈴聲音量。當(dāng)需要toast顯示音量而不修改它時(shí)可能是有用的。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
常量值: 0 (0x00000000)
public static final int AUDIOFOCUS_GAIN
用來指示獲得音頻焦點(diǎn),請求音頻焦點(diǎn),未知持續(xù)時(shí)間
參照
onAudioFocusChange(int)
requestAudioFocus(OnAudioFocusChangeListener, int, int)
常量值: 1 (0x00000001)
public static final int AUDIOFOCUS_GAIN_TRANSIENT
用來指示臨時(shí)獲得或請求音頻焦點(diǎn),預(yù)期持續(xù)很短的時(shí)間。臨時(shí)改變的例子是操縱方向的回放,或一個(gè)事件的通知。
參照
onAudioFocusChange(int)
requestAudioFocus(OnAudioFocusChangeListener, int, int)
常量值: 2 (0x00000002)
public static final int AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
用來指示一個(gè)臨時(shí)的音頻焦點(diǎn)請求,預(yù)期持續(xù)很短的時(shí)間,其它音頻程序降低他們的輸出級別后保持播放是可接受的(也被稱為“ducking”)。臨時(shí)改變的例子是操縱方向的回入,在后臺(tái)回放音樂是可接受的。
參照
onAudioFocusChange(int)
requestAudioFocus(OnAudioFocusChangeListener, int, int)
常量值: 3 (0x00000003)
public static final int AUDIOFOCUS_LOSS
用來指示在未知持續(xù)時(shí)間內(nèi)丟失音頻焦點(diǎn)
參照
onAudioFocusChange(int)
常量值: -1 (0xffffffff)
public static final int AUDIOFOCUS_LOSS_TRANSIENT
用來指示暫時(shí)的丟失音頻焦點(diǎn)。
參照
onAudioFocusChange(int)
常量值: -2 (0xfffffffe)
public static final int AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK
用來指示暫時(shí)的丟失音頻焦點(diǎn),若音頻焦點(diǎn)的丟失者想繼續(xù)播放,它會(huì)降低自己的輸出
音量(也被稱為“ducking”),因?yàn)樾碌慕裹c(diǎn)擁有者不要求其它靜音。
參照
onAudioFocusChange(int)
常量值: -3 (0xfffffffd)
public static final int AUDIOFOCUS_REQUEST_FAILED
一個(gè)失敗的焦點(diǎn)轉(zhuǎn)移請求。
常量值: 0 (0x00000000)
public static final int AUDIOFOCUS_REQUEST_GRANTED
一個(gè)成功的焦點(diǎn)轉(zhuǎn)移請求。
常量值: 1 (0x00000001)
public static final String EXTRA_RINGER_MODE
新的振鈴模式。
參照
RINGER_MODE_CHANGED_ACTION
RINGER_MODE_NORMAL
RINGER_MODE_SILENT
RINGER_MODE_VIBRATE
常量值: "android.media.EXTRA_RINGER_MODE"
public static final String EXTRA_SCO_AUDIO_STATE
額外的intent ACTION_SCO_AUDIO_STATE_CHANGED包含新的藍(lán)牙SCO連接狀態(tài)。
常量值: "android.media.extra.SCO_AUDIO_STATE"
public static final String EXTRA_VIBRATE_SETTING
特定類型的新振動(dòng)設(shè)置。
參照
VIBRATE_SETTING_CHANGED_ACTION
EXTRA_VIBRATE_TYPE
VIBRATE_SETTING_ON
VIBRATE_SETTING_OFF
VIBRATE_SETTING_ONLY_SILENT
常量值: "android.media.EXTRA_VIBRATE_SETTING"
public static final String EXTRA_VIBRATE_TYPE
振動(dòng)類型設(shè)置發(fā)生變化。
參照
VIBRATE_SETTING_CHANGED_ACTION
VIBRATE_TYPE_NOTIFICATION
VIBRATE_TYPE_RINGER
常量值: "android.media.EXTRA_VIBRATE_TYPE"
public static final int FLAG_ALLOW_RINGER_MODES
當(dāng)改變音量時(shí),是否將振鈴模式作為候選項(xiàng)。例如,如果為true且音量級別為0音量或用ADJUST_LOWER調(diào)整音量,那么振鈴模式會(huì)改變靜音或振動(dòng)模式。
對鈴聲流來說這個(gè)選項(xiàng)默認(rèn)是打開的。如果包括這個(gè)標(biāo)志,這個(gè)行為將被展示,不管流類型受振鈴模式的影響。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
常量值: 2 (0x00000002)
public static final int FLAG_PLAY_SOUND
當(dāng)改變音量時(shí),是否播放聲音。
若由adjustVolume(int, int)或adjustSuggestedStreamVolume(int, int, int)給出,則在某些情況下會(huì)被忽略(例如,采用的流類型不是STREAM_RING,或正在向下調(diào)整音量)。
參照
adjustStreamVolume(int, int, int)
adjustVolume(int, int)
setStreamVolume(int, int, int)
常量值: 4 (0x00000004)
public static final int FLAG_REMOVE_SOUND_AND_VIBRATE
移除隊(duì)列中或正在播放(與改變音量相關(guān))的聲音/振動(dòng)。
常量值: 8 (0x00000008)
public static final int FLAG_SHOW_UI
顯示包含當(dāng)前音量的toast。
參照
adjustStreamVolume(int, int, int)
adjustVolume(int, int)
setStreamVolume(int, int, int)
setRingerMode(int)
常量值: 1 (0x00000001)
public static final int FLAG_VIBRATE
若進(jìn)入振動(dòng)鈴聲模式是否振動(dòng)。
常量值: 16 (0x00000010)
public static final int FX_FOCUS_NAVIGATION_DOWN
焦點(diǎn)下移。
參照
playSoundEffect(int)
常量值: 2 (0x00000002)
public static final int FX_FOCUS_NAVIGATION_LEFT
焦點(diǎn)左移
參照
playSoundEffect(int)
常量值: 3 (0x00000003)
public static final int FX_FOCUS_NAVIGATION_RIGHT
焦點(diǎn)右移。
參照
playSoundEffect(int)
常量值: 4 (0x00000004)
public static final int FX_FOCUS_NAVIGATION_UP
焦點(diǎn)上移。
參照
playSoundEffect(int)
常量值: 1 (0x00000001)
public static final int FX_KEYPRESS_DELETE
IME刪除按鍵聲音。
參照
playSoundEffect(int)
常量值: 7 (0x00000007)
public static final int FX_KEYPRESS_RETURN
IME返回按鍵聲音。
參照
playSoundEffect(int)
常量值: 8 (0x00000008)
public static final int FX_KEYPRESS_SPACEBAR
IME空格按鍵聲音。
參照
playSoundEffect(int)
常量值: 6 (0x00000006)
public static final int FX_KEYPRESS_STANDARD
IME標(biāo)準(zhǔn)按鍵聲音。
參照
playSoundEffect(int)
常量值: 5 (0x00000005)
public static final int FX_KEY_CLICK
鍵盤和方向鍵點(diǎn)擊聲音。
參照
playSoundEffect(int)
常量值: 0 (0x00000000)
public static final int MODE_CURRENT
當(dāng)前音頻模式。用來請求音頻路由到當(dāng)前模式。
常量值: -1 (0xffffffff)
public static final int MODE_INVALID
無效的音頻模式
常量值: -2 (0xfffffffe)
public static final int MODE_IN_CALL
呼叫的音頻模式。建立一個(gè)電話呼叫。
常量值: 2 (0x00000002)
public static final int MODE_IN_COMMUNICATION
通信的音頻模式。建立一個(gè)音頻/視頻或VoIP呼叫。
常量值: 3 (0x00000003)
public static final int MODE_NORMAL
正常的音頻模式:不是振鈴或建立呼叫。
常量值: 0 (0x00000000)
public static final int MODE_RINGTONE
振鈴的音頻模式。獲取信號輸入。
常量值: 1 (0x00000001)
public static final int NUM_STREAMS
已棄用。
用 AudioSystem.getNumStreamTypes() 代替。
常量值: 5 (0x00000005)
public static final String RINGER_MODE_CHANGED_ACTION
廣播intent表明振鈴模式被改變。包括新的振鈴模式。
參照
EXTRA_RINGER_MODE
常量值: "android.media.RINGER_MODE_CHANGED"
public static final int RINGER_MODE_NORMAL
振鈴模式可以是聽得見的或振動(dòng)的。若音量在改變這一模式前是聽得見的,則它是聽得見的。若打開振動(dòng)設(shè)置,則它是振動(dòng)的。
參照
setRingerMode(int)
getRingerMode()
常量值: 2 (0x00000002)
public static final int RINGER_MODE_SILENT
振鈴模式是靜音且不振動(dòng)。(這要覆蓋振動(dòng)設(shè)置。)
參照
setRingerMode(int)
getRingerMode()
常量值: 0 (0x00000000)
public static final int RINGER_MODE_VIBRATE
振鈴模式是靜音且振動(dòng)。(這會(huì)導(dǎo)致電話鈴聲一直振動(dòng),但若設(shè)置當(dāng)通知振動(dòng)時(shí)振動(dòng))
參照
setRingerMode(int)
getRingerMode()
常量值: 1 (0x00000001)
public static final int ROUTE_ALL
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
用來屏蔽setRouting(int, int, int)的參數(shù)。
常量值: -1 (0xffffffff)
public static final int ROUTE_BLUETOOTH
已棄用。
用ROUTE_BLUETOOTH_SCO。不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(),
setBluetoothScoOn()代替。
常量值: 4 (0x00000004)
public static final int ROUTE_BLUETOOTH_A2DP
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音頻輸出到藍(lán)牙A2DP。
常量值: 16 (0x00000010)
public static final int ROUTE_BLUETOOTH_SCO
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音頻輸出到藍(lán)牙SCO。
常量值: 4 (0x00000004)
public static final int ROUTE_EARPIECE
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音頻輸出到聽筒。
常量值: 1 (0x00000001)
public static final int ROUTE_HEADSET
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音頻輸出到耳機(jī)。
常量值: 8 (0x00000008)
public static final int ROUTE_SPEAKER
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音頻輸出到揚(yáng)聲器。
常量值: 2 (0x00000002)
public static final int SCO_AUDIO_STATE_CONNECTED
EXTRA_SCO_AUDIO_STATE的額外值表明SCO音頻通道已建立。
常量值: 1 (0x00000001)
public static final int SCO_AUDIO_STATE_DISCONNECTED
EXTRA_SCO_AUDIO_STATE的額外值表明SCO音頻通道未建立。
常量值: 0 (0x00000000)
public static final int SCO_AUDIO_STATE_ERROR
EXTRA_SCO_AUDIO_STATE的額外值表明嘗試獲取狀態(tài)有錯(cuò)誤。
常量值: -1 (0xffffffff)
public static final int STREAM_ALARM
用于報(bào)警的音頻流。
常量值: 4 (0x00000004)
public static final int STREAM_DTMF
用于DTMF Tones的音頻流。
常量值: 8 (0x00000008)
public static final int STREAM_MUSIC
用于音樂回放的音頻流。
常量值: 3 (0x00000003)
public static final int STREAM_NOTIFICATION
用于通知的音頻流。
常量值: 5 (0x00000005)
public static final int STREAM_RING
用于電話鈴聲的音頻流。
常量值: 2 (0x00000002)
public static final int STREAM_SYSTEM
用于系統(tǒng)聲音的音頻流。
常量值: 1 (0x00000001)
public static final int STREAM_VOICE_CALL
用于電話的音頻流。
常量值: 0 (0x00000000)
public static final int USE_DEFAULT_STREAM_TYPE
建議使用默認(rèn)的流類型。這可能不適用于所有需要流類型的地方。
常量值: -2147483648 (0x80000000)
public static final String VIBRATE_SETTING_CHANGED_ACTION
廣播intent,表明振動(dòng)設(shè)置已改變。包括振動(dòng)類型和其新設(shè)置。
參照
EXTRA_VIBRATE_TYPE
EXTRA_VIBRATE_SETTING
常量值: "android.media.VIBRATE_SETTING_CHANGED"
public static final int VIBRATE_SETTING_OFF
建議不振動(dòng)的振動(dòng)設(shè)置
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
常量值: 0 (0x00000000)
public static final int VIBRATE_SETTING_ON
建議在合適時(shí)振動(dòng)的振動(dòng)設(shè)置。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
常量值: 1 (0x00000001)
public static final int VIBRATE_SETTING_ONLY_SILENT
建議只在振動(dòng)鈴聲模式中振動(dòng)的振動(dòng)設(shè)置。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
常量值: 2 (0x00000002)
public static final int VIBRATE_TYPE_NOTIFICATION
與通知相符的振動(dòng)類型。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
shouldVibrate(int)
常量值: 1 (0x00000001)
public static final int VIBRATE_TYPE_RINGER
與振鈴相符的振動(dòng)類型。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
shouldVibrate(int)
常量值: 0 (0x00000000)
公共方法
public int abandonAudioFocus (AudioManager.OnAudioFocusChangeListener l)
放棄音頻焦點(diǎn)。若存在先前焦點(diǎn)擁有者,則使它接收焦點(diǎn)。
參數(shù)
I 請求焦點(diǎn)的監(jiān)聽器。
返回值
AUDIOFOCUS_REQUEST_FAILED或 AUDIOFOCUS_REQUEST_GRANTED
public void adjustStreamVolume (int streamType, int direction, int flags)
通過同一方向的一步調(diào)整特定流的音量。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
streamType 欲調(diào)整的流類型。 值為STREAM_VOICE_CALL, STREAM_SYSTEM,
STREAM_RING, STREAM_MUSIC或STREAM_ALARM。
Direction 欲調(diào)整音量的方向。值為ADJUST_LOWER, ADJUST_RAISE, 或
ADJUST_SAME.
Flags 一個(gè)或多個(gè)標(biāo)志。
參照
adjustVolume(int, int)
setStreamVolume(int, int, int)
public void adjustSuggestedStreamVolume (int direction, int suggestedStreamType, int flags)
調(diào)整最相關(guān)流或給定的回放流的音量。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
direction 欲調(diào)整音量的方向。 值為 ADJUST_LOWER, ADJUST_RAISE,
或 ADJUST_SAME.
suggestedStreamType 若不存在相關(guān)流,則用該流類型。
USE_DEFAULT_STREAM_TYPE在這是有效的。
Flags 一個(gè)或多個(gè)標(biāo)志。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
setStreamVolume(int, int, int)
public void adjustVolume (int direction, int flags)
調(diào)整最相關(guān)流的音量。例如,若在通話中,不管通話屏幕是否顯示,它都將擁有最高的
優(yōu)先級。另一個(gè)例子,若音樂正在后臺(tái)播放且不在通話中,剛將調(diào)整音頻流。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
direction 欲調(diào)整音量的方向。 值為ADJUST_LOWER, ADJUST_RAISE, 或
ADJUST_SAME.
flags 一個(gè)或多個(gè)標(biāo)志。
參照
adjustSuggestedStreamVolume(int, int, int)
adjustStreamVolume(int, int, int)
setStreamVolume(int, int, int)
public int getMode ()
返回當(dāng)前的音頻模式。
返回值
當(dāng)前音頻模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL 或
MODE_IN_COMMUNICATION). 從HAL中返回當(dāng)前音頻狀態(tài)。
public String getParameters (String keys)
獲得音頻硬件設(shè)置的參數(shù)值變量。
參數(shù)
keys 參數(shù)列表
返回值
鍵值對形式的參數(shù)列表: key1=value1;key2=value2;...
public int getRingerMode ()
返回當(dāng)前鈴聲模式。
返回值
當(dāng)前鈴聲模式,值為RINGER_MODE_NORMAL, RINGER_MODE_SILENT, 或
RINGER_MODE_VIBRATE.
參照
setRingerMode(int)
public int getRouting (int mode)
已棄用。
不要直接查詢音頻路由,用方法isSpeakerphoneOn(), isBluetoothScoOn(), isBluetoothA2dpOn() and isWiredHeadsetOn()代替。
返回指定模式的當(dāng)前音頻路由位向量。
參數(shù)
mode 獲取路由的音頻模式 (e.g., MODE_RINGTONE)
返回值
可以與ROUTE_xxx相比較的一個(gè)音頻路由位向量
public int getStreamMaxVolume (int streamType)
返回特定流的最大音量索引。
參數(shù)
streamType 返回最大音量索引的流類型。
返回值
流的最大有效音量索引。
參照
getStreamVolume(int)
public int getStreamVolume (int streamType)
返回特定類的當(dāng)前音量索引。
參數(shù)
streamType 返回音量索引的流類型。
返回值
The current volume index for the stream.
流的當(dāng)前音量索引。
參照
getStreamMaxVolume(int)
setStreamVolume(int, int, int)
public int getVibrateSetting (int vibrateType)
返回振動(dòng)類型對應(yīng)的用戶振動(dòng)設(shè)置。
大多數(shù)需要振動(dòng)的客戶端不應(yīng)該使用這個(gè)方法,用shouldVibrate(int)代替。
參數(shù)
vibrateType 振動(dòng)類型。值為VIBRATE_TYPE_NOTIFICATION或
VIBRATE_TYPE_RINGER。
返回值
振動(dòng)設(shè)置,值為VIBRATE_SETTING_ON, VIBRATE_SETTING_OFF, 或
VIBRATE_SETTING_ONLY_SILENT.
參照
setVibrateSetting(int, int)
shouldVibrate(int)
public boolean isBluetoothA2dpOn ()
檢查A2DP音頻路由到藍(lán)牙耳機(jī)是否打開。
返回值
true if A2DP audio is being routed to/from Bluetooth headset; false if otherwise
若A2DP音頻被路由到/從藍(lán)牙耳機(jī),返回ture。反之,返回false。
public boolean isBluetoothScoAvailableOffCall ()
表明當(dāng)前平臺(tái)是否支持使用SCO關(guān)閉通話用例。當(dāng)電話不在通話中,應(yīng)用程序需要使用藍(lán)牙SCO音頻,必須先調(diào)用這個(gè)方法以確保平臺(tái)支持這一特性。
返回值
true if bluetooth SCO can be used for audio when not in call false otherwise
若當(dāng)不在通話中時(shí)音頻可以使用藍(lán)牙SCO,返回ture。反之,返回false。
參照
startBluetoothSco()
public boolean isBluetoothScoOn ()
檢查通信是否使用藍(lán)牙SCO。
返回值
若通信使用SCO,返回true。反之,返回false。
public boolean isMicrophoneMute ()
檢查麥克風(fēng)是否靜音。
返回值
若麥克風(fēng)靜音,返回true。反之,返回false。
public boolean isMusicActive ()
檢查是否有音樂是活動(dòng)的。
返回值
若有音樂曲目是活動(dòng)的,返回true。
public boolean isSpeakerphoneOn ()
檢查喇叭擴(kuò)音器是否開著。
返回值
若喇叭擴(kuò)音器開著,返回true。反之,返回false。
public boolean isWiredHeadsetOn ()
檢查音頻路由到有線耳機(jī)是否開著。
返回值
若音頻被路由到/從有線耳機(jī),返回true。反之,返回false。
public void loadSoundEffects ()
加載音效。當(dāng)音效可用時(shí),要先調(diào)用這個(gè)方法。
public void playSoundEffect (int effectType, float volume)
播放音效(按鍵聲音,打開/關(guān)閉蓋子)
參數(shù)
effectType 音效的類型。值為FX_KEY_CLICK, FX_FOCUS_NAVIGATION_UP,
FX_FOCUS_NAVIGATION_DOWN, FX_FOCUS_NAVIGATION_LEFT,
FX_FOCUS_NAVIGATION_RIGHT,FX_KEYPRESS_STANDARD,
FX_KEYPRESS_SPACEBAR,FX_KEYPRESS_DELETE,
FX_KEYPRESS_RETURN。
Volume 音效的音量。 音量值是原始標(biāo)量so UI controls should be scaled logarithmically. 若音量指定為-1,用AudioManager.STREAM_MUSIC 流音量減去3dB。注意:這個(gè)版本應(yīng)用于啟動(dòng)和控制音量面板的設(shè)置。
public void playSoundEffect (int effectType)
播放音效(按鍵聲音,打開/關(guān)閉蓋子)
參數(shù)
effectType 音效的類型。值為FX_KEY_CLICK, FX_FOCUS_NAVIGATION_UP,
FX_FOCUS_NAVIGATION_DOWN, FX_FOCUS_NAVIGATION_LEFT,
FX_FOCUS_NAVIGATION_RIGHT, FX_KEYPRESS_STANDARD,
FX_KEYPRESS_SPACEBAR, FX_KEYPRESS_DELETE,
FX_KEYPRESS_RETURN,注意:這個(gè)版本使用UI設(shè)置決定聲音能否
被聽見。
public void registerMediaButtonEventReceiver (ComponentName eventReceiver)
注冊一個(gè)組件,它是MEDIA_BUTTON intent的唯一接收器。
參數(shù)
eventReceiver 接收媒體按鈕intent的BroadcastReceiver 的標(biāo)志符。這個(gè)廣播
接收器必須在應(yīng)用程序清單中聲明。
public int requestAudioFocus (AudioManager.OnAudioFocusChangeListener l, int streamType, int durationHint)
請求音頻焦點(diǎn)。發(fā)送請求以獲得音頻焦點(diǎn)。
參數(shù)
l 音頻焦點(diǎn)改變時(shí)通知的接收器。
streamType 受焦點(diǎn)請求影響的主要音頻流類型。
durationHint 用AUDIOFOCUS_GAIN_TRANSIENT表示這個(gè)焦點(diǎn)請求是暫時(shí)的,很快會(huì)放棄這個(gè)焦點(diǎn)。暫時(shí)請求的例子有操縱方向的回放,通知聲音。用AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK表示若先前焦點(diǎn)擁有者躲開它的音頻輸出,它保持播放是可行的。AUDIOFOCUS_GAIN用于一個(gè)求和持續(xù)時(shí)間的焦點(diǎn)請求,如回放歌曲或音頻。
返回值
AUDIOFOCUS_REQUEST_FAILED或 AUDIOFOCUS_REQUEST_GRANTED
public void setBluetoothA2dpOn (boolean on)
已棄用。
不要使用。
參數(shù)
on 若為true,路由A2DP音頻到/從藍(lán)牙耳機(jī);若為false,禁用A2DP音頻。
public void setBluetoothScoOn (boolean on)
請求在通信中使用藍(lán)牙SCO耳機(jī)。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
on 若為true,在通信中使用藍(lán)牙SCO;若為false,不使用。
public void setMicrophoneMute (boolean on)
設(shè)置麥克風(fēng)是否靜音。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
on 若為ture,麥克風(fēng)靜音。若為flase,不靜音。
public void setMode (int mode)
設(shè)置音頻模式。
音頻模式包含音頻路由和電話層的行為。因此,這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。特別地,MODE_IN_CALL模式只能用在當(dāng)打電話時(shí)的電話程序中,因?yàn)樗鼤?huì)引起信號從音頻層饋入到平臺(tái)混音器。
參數(shù)
mode 請求的音頻模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL
或MODE_IN_COMMUNICATION)。通知HAL當(dāng)前的音頻狀態(tài)以便它能
適當(dāng)?shù)穆酚梢纛l。
public void setParameters (String keyValuePairs)
給音頻硬件設(shè)置一個(gè)可變數(shù)目的參數(shù)值。
參數(shù)
keyValuePairs 鍵值對形式的參數(shù)列表:key1=value1;key2=value2;...
public void setRingerMode (int ringerMode)
設(shè)置鈴聲模式。
靜音模式會(huì)靜音且不會(huì)振動(dòng)。振動(dòng)模式會(huì)靜音且會(huì)振動(dòng)。正常模式是聽得見的且根據(jù)用戶設(shè)置決定是否振動(dòng)。
參數(shù)
ringerMode 鈴聲模式。值為RINGER_MODE_NORMAL, RINGER_MODE_SILENT,
or RINGER_MODE_VIBRATE.。
參照
getRingerMode()
public void setRouting (int mode, int routes, int mask)
已棄用。
不要直接設(shè)置音頻路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
為特定模式設(shè)置音頻路由。
參數(shù)
mode 改變路由的音頻模式。E.g., MODE_RINGTONE.
routes 請求路由的位向量,由一個(gè)或多個(gè)ROUTE_xxx類型創(chuàng)建。設(shè)置位表
明路由應(yīng)該打開。
mask 改變路由位向量由一個(gè)或多個(gè)ROUTE_xxx類型創(chuàng)建復(fù)原位表明路由
應(yīng)該不改變。
public void setSpeakerphoneOn (boolean on)
設(shè)置喇叭擴(kuò)音器打開或關(guān)閉。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
on 為true打開喇叭擴(kuò)音器;為false關(guān)閉喇叭擴(kuò)音器。
public void setStreamMute (int streamType, boolean state)
靜音或不靜音音頻流。
靜音命令被保護(hù)以免客戶端進(jìn)程死亡:若具有流上的活動(dòng)靜音請求的進(jìn)程死亡,這個(gè)流會(huì)自動(dòng)取消靜音。
對于給定的流,靜音請求是累計(jì)的:AudioManager會(huì)從一個(gè)或多個(gè)客戶端接收數(shù)個(gè)靜音請求,只有當(dāng)接收到相同數(shù)目的取消靜音請求時(shí)流才會(huì)取消靜音。
為了更好的用戶體驗(yàn),應(yīng)該程序必須在onPause()中取消已靜音流,若合適在onResume()中再次靜音
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
streamType 欲靜音/取消靜音的流。
state 請求靜音狀態(tài):若為true,靜音;若為false,取消靜音。
public void setStreamSolo (int streamType, boolean state)
單獨(dú)的或不單獨(dú)的一個(gè)特定類。其它流靜音。
保護(hù)solo命令以免客戶端進(jìn)程死亡:若有在流上活動(dòng)的solo請求的進(jìn)程死亡,所有的流都被靜音,因?yàn)檫@一請求被自動(dòng)取消靜音。
對給定類的solo請求是累計(jì)的:AudioManager會(huì)從一個(gè)或多個(gè)客戶端接收數(shù)個(gè)solo請求,只有當(dāng)接收到相同數(shù)目的unsoloed請求時(shí)流才會(huì)是unsoloed。
為了更好的用戶體驗(yàn),應(yīng)該程序必須在onPause()中unsole a soloed 流,若合適在onResume()中再次solo。
參數(shù)
streamType soloed/unsolod的流。
state 請求的solo狀態(tài):solo打開為true,關(guān)閉為false。
public void setStreamVolume (int streamType, int index, int flags)
設(shè)置特定流的音量索引。
參數(shù)
streamType 欲設(shè)置音量索引的流。
index 欲設(shè)置的音量索引。參照getStreamMaxVolume(int) 獲得最大有效值。
flags 一個(gè)或多個(gè)標(biāo)志。
參照
getStreamMaxVolume(int)
getStreamVolume(int)
public void setVibrateSetting (int vibrateType, int vibrateSetting)
當(dāng)振動(dòng)類型應(yīng)該振動(dòng)時(shí),設(shè)置配置。
這個(gè)方法只能用于代替音頻設(shè)置的平臺(tái)范圍管理應(yīng)用程序或主要電話應(yīng)用程序。
參數(shù)
vibrateType 振動(dòng)類型。值為VIBRATE_TYPE_NOTIFICATION 或
VIBRATE_TYPE_RINGER。
vibrateSetting 振動(dòng)設(shè)置。值為VIBRATE_SETTING_ON, VIBRATE_SETTING_OFF,或
VIBRATE_SETTING_ONLY_SILENT。
參照
getVibrateSetting(int)
shouldVibrate(int)
public void setWiredHeadsetOn (boolean on)
已棄用。
不再使用。
設(shè)置打開或關(guān)閉音頻路由到有線耳機(jī)。
參數(shù)
on 為true,設(shè)置路由音頻到/從有線耳機(jī);為false, 禁用有線耳機(jī)音頻。
public boolean shouldVibrate (int vibrateType)
根據(jù)用戶的設(shè)置和當(dāng)前鈴聲模式,返回一個(gè)特定類型是否應(yīng)該振動(dòng)。
使用通知來振動(dòng)的大多數(shù)客戶端不應(yīng)該使用這個(gè)方法。若策略不允許,通知管理器不會(huì)振動(dòng),故客戶端常常設(shè)置振動(dòng)模式且讓通知管理器控制是否振動(dòng)。
參數(shù)
vibrateType 振動(dòng)類型。值為VIBRATE_TYPE_NOTIFICATION或
VIBRATE_TYPE_RINGER。
返回值
在調(diào)用這個(gè)方法的瞬間,類型是否應(yīng)該振動(dòng)。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
public void startBluetoothSco ()
啟動(dòng)藍(lán)牙SCO音頻連接。
需要權(quán)限:MODIFY_AUDIO_SETTINGS。
當(dāng)電話不在通話中,想發(fā)送/接收音頻到/從藍(lán)牙SCO耳機(jī)的應(yīng)用程序可以使用這個(gè)方法。
由于SCO連接會(huì)花費(fèi)幾秒鐘,應(yīng)用程序不應(yīng)該依賴方法返回的可用連接,而是注冊接
收intent ACTION_SCO_AUDIO_STATE_CHANGED,并等待狀態(tài)變?yōu)?/span>SCO_AUDIO_STATE_CONNECTED。
由于不保證連接成功,應(yīng)用程序必須等待這個(gè)intent超時(shí)。
當(dāng)完成SCO連接或建立超時(shí),應(yīng)用程序必須調(diào)用stopBluetoothSco()去清空請求并關(guān)閉藍(lán)牙連接。
即使SCO連接已建立,下列限制應(yīng)用在音頻輸出流以使他們被路由到SCO耳機(jī):1.流類型必須是STREAM_VOICE_CALL 2.格式必須是mono 3.取樣必須是16kH或8kHz。
下列限制應(yīng)用在輸出流: 1.格式必須是mono2.取樣必須是16kH或8kHz。
注意電話應(yīng)用程序總是有使用SCO連接的優(yōu)先權(quán)。當(dāng)電話在通話中,調(diào)用這個(gè)方法會(huì)被忽略。類似,當(dāng)應(yīng)用程序正在使用SCO連接,若接聽來電或呼叫發(fā)送,連接會(huì)丟失且不會(huì)在通話結(jié)束后自動(dòng)返回。
參照
stopBluetoothSco()
ACTION_SCO_AUDIO_STATE_CHANGED
public void stopBluetoothSco ()
停止藍(lán)牙SCO音頻連接。
需要權(quán)限:MODIFY_AUDIO_SETTINGS。
應(yīng)用程序用startBluetoothSco()請求使用藍(lán)牙SCO音頻,當(dāng)應(yīng)用程序完成SCO連接或建立時(shí)間超時(shí), 必須調(diào)用這個(gè)方法。
參照
startBluetoothSco()
public void unloadSoundEffects ()
不加載音效。當(dāng)音效被禁用時(shí),調(diào)用這個(gè)方法釋放一些內(nèi)存。
public void unregisterMediaButtonEventReceiver (ComponentName eventReceiver)
移除注冊MEDIA_BUTTON intent的接收器。
參數(shù)
eventReceiver 用registerMediaButtonEventReceiver(ComponentName)注冊的BroadcastReceiver的標(biāo)識符。
補(bǔ)充
文章精選
Android 小項(xiàng)目之--使用【AudioManager】類控制音量
android之聲音管理器AudioManager的使用