Android中文API(129) —— AudioManager
前言
本章內容是android.media.AudioManager,版本為Android 3.2 r1,翻譯來自"文煒",歡迎訪問他的部落格:"http://www.cnblogs.com/iezhyg/",再次感謝"文煒"!歡迎你一起參與Android的中文翻譯,聯絡我over140@gmail.com。
宣告
歡迎轉載,但請保留文章原始出處:)
AudioManager
譯者署名: 文煒
譯者連結:http://www.cnblogs.com/iezhyg/
版本:Android 3.2 r1
結構
繼承關係
public class AudioManager extends Object
java.lang.Object
android.media.AudioManager
類概述
AudioManager類提供訪問音量和振鈴模式的控制。
用Context.getSystemService(Context.AUDIO_SERVICE)得到這個類的例項。
常量
public static final String ACTION_AUDIO_BECOMING_NOISY
廣播intent,提示應用程式音訊訊號由於音訊輸出的變化將變得“嘈雜”。例如,當拔出一個有線耳機,或斷開一個支援A2DP的音訊接收器,這個intent就會被髮送,且音訊系統將自動切換音訊線路到揚聲器。收到這個intent後,控制音訊流的應用程式會考慮暫停,減小音量或其他措施,以免揚聲器的聲音使使用者驚奇。
常量值:"android.media.AUDIO_BECOMING_NOISY"
public static final String ACTION_SCO_AUDIO_STATE_CHANGED
廣播intent,表明藍芽SCO音訊連線狀態已改變。這個intent包含額外資訊:EXTRA_SCO_AUDIO_STATE,它表明新的狀態是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
保持先前的鈴聲音量。當需要toast顯示音量而不修改它時可能是有用的。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
常量值: 0 (0x00000000)
public static final int AUDIOFOCUS_GAIN
用來指示獲得音訊焦點,請求音訊焦點,未知持續時間
參照
onAudioFocusChange(int)
requestAudioFocus(OnAudioFocusChangeListener, int, int)
常量值: 1 (0x00000001)
public static final int AUDIOFOCUS_GAIN_TRANSIENT
用來指示臨時獲得或請求音訊焦點,預期持續很短的時間。臨時改變的例子是操縱方向的回放,或一個事件的通知。
參照
onAudioFocusChange(int)
requestAudioFocus(OnAudioFocusChangeListener, int, int)
常量值: 2 (0x00000002)
public static final int AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
用來指示一個臨時的音訊焦點請求,預期持續很短的時間,其它音訊程式降低他們的輸出級別後保持播放是可接受的(也被稱為“ducking”)。臨時改變的例子是操縱方向的回入,在後臺回放音樂是可接受的。
參照
onAudioFocusChange(int)
requestAudioFocus(OnAudioFocusChangeListener, int, int)
常量值: 3 (0x00000003)
public static final int AUDIOFOCUS_LOSS
用來指示在未知持續時間內丟失音訊焦點
參照
onAudioFocusChange(int)
常量值: -1 (0xffffffff)
public static final int AUDIOFOCUS_LOSS_TRANSIENT
用來指示暫時的丟失音訊焦點。
參照
onAudioFocusChange(int)
常量值: -2 (0xfffffffe)
public static final int AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK
用來指示暫時的丟失音訊焦點,若音訊焦點的丟失者想繼續播放,它會降低自己的輸出
音量(也被稱為“ducking”),因為新的焦點擁有者不要求其它靜音。
參照
onAudioFocusChange(int)
常量值: -3 (0xfffffffd)
public static final int AUDIOFOCUS_REQUEST_FAILED
一個失敗的焦點轉移請求。
常量值: 0 (0x00000000)
public static final int AUDIOFOCUS_REQUEST_GRANTED
一個成功的焦點轉移請求。
常量值: 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包含新的藍芽SCO連線狀態。
常量值: "android.media.extra.SCO_AUDIO_STATE"
public static final String EXTRA_VIBRATE_SETTING
特定型別的新振動設定。
參照
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
振動型別設定發生變化。
參照
VIBRATE_SETTING_CHANGED_ACTION
VIBRATE_TYPE_NOTIFICATION
VIBRATE_TYPE_RINGER
常量值: "android.media.EXTRA_VIBRATE_TYPE"
public static final int FLAG_ALLOW_RINGER_MODES
當改變音量時,是否將振鈴模式作為候選項。例如,如果為true且音量級別為0音量或用ADJUST_LOWER調整音量,那麼振鈴模式會改變靜音或振動模式。
對鈴聲流來說這個選項預設是開啟的。如果包括這個標誌,這個行為將被展示,不管流型別受振鈴模式的影響。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
常量值: 2 (0x00000002)
public static final int FLAG_PLAY_SOUND
當改變音量時,是否播放聲音。
若由adjustVolume(int, int)或adjustSuggestedStreamVolume(int, int, int)給出,則在某些情況下會被忽略(例如,採用的流型別不是STREAM_RING,或正在向下調整音量)。
參照
adjustStreamVolume(int, int, int)
adjustVolume(int, int)
setStreamVolume(int, int, int)
常量值: 4 (0x00000004)
public static final int FLAG_REMOVE_SOUND_AND_VIBRATE
移除佇列中或正在播放(與改變音量相關)的聲音/振動。
常量值: 8 (0x00000008)
public static final int FLAG_SHOW_UI
顯示包含當前音量的toast。
參照
adjustStreamVolume(int, int, int)
adjustVolume(int, int)
setStreamVolume(int, int, int)
setRingerMode(int)
常量值: 1 (0x00000001)
public static final int FLAG_VIBRATE
若進入振動鈴聲模式是否振動。
常量值: 16 (0x00000010)
public static final int FX_FOCUS_NAVIGATION_DOWN
焦點下移。
參照
playSoundEffect(int)
常量值: 2 (0x00000002)
public static final int FX_FOCUS_NAVIGATION_LEFT
焦點左移
參照
playSoundEffect(int)
常量值: 3 (0x00000003)
public static final int FX_FOCUS_NAVIGATION_RIGHT
焦點右移。
參照
playSoundEffect(int)
常量值: 4 (0x00000004)
public static final int FX_FOCUS_NAVIGATION_UP
焦點上移。
參照
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標準按鍵聲音。
參照
playSoundEffect(int)
常量值: 5 (0x00000005)
public static final int FX_KEY_CLICK
鍵盤和方向鍵點選聲音。
參照
playSoundEffect(int)
常量值: 0 (0x00000000)
public static final int MODE_CURRENT
當前音訊模式。用來請求音訊路由到當前模式。
常量值: -1 (0xffffffff)
public static final int MODE_INVALID
無效的音訊模式
常量值: -2 (0xfffffffe)
public static final int MODE_IN_CALL
呼叫的音訊模式。建立一個電話呼叫。
常量值: 2 (0x00000002)
public static final int MODE_IN_COMMUNICATION
通訊的音訊模式。建立一個音訊/視訊或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
振鈴模式可以是聽得見的或振動的。若音量在改變這一模式前是聽得見的,則它是聽得見的。若開啟振動設定,則它是振動的。
參照
setRingerMode(int)
getRingerMode()
常量值: 2 (0x00000002)
public static final int RINGER_MODE_SILENT
振鈴模式是靜音且不振動。(這要覆蓋振動設定。)
參照
setRingerMode(int)
getRingerMode()
常量值: 0 (0x00000000)
public static final int RINGER_MODE_VIBRATE
振鈴模式是靜音且振動。(這會導致電話鈴聲一直振動,但若設定當通知振動時振動)
參照
setRingerMode(int)
getRingerMode()
常量值: 1 (0x00000001)
public static final int ROUTE_ALL
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
用來遮蔽setRouting(int, int, int)的引數。
常量值: -1 (0xffffffff)
public static final int ROUTE_BLUETOOTH
已棄用。
用ROUTE_BLUETOOTH_SCO。不要直接設定音訊路由,用方法setSpeakerphoneOn(),
setBluetoothScoOn()代替。
常量值: 4 (0x00000004)
public static final int ROUTE_BLUETOOTH_A2DP
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音訊輸出到藍芽A2DP。
常量值: 16 (0x00000010)
public static final int ROUTE_BLUETOOTH_SCO
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音訊輸出到藍芽SCO。
常量值: 4 (0x00000004)
public static final int ROUTE_EARPIECE
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音訊輸出到聽筒。
常量值: 1 (0x00000001)
public static final int ROUTE_HEADSET
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音訊輸出到耳機。
常量值: 8 (0x00000008)
public static final int ROUTE_SPEAKER
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
路由音訊輸出到揚聲器。
常量值: 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的額外值表明嘗試獲取狀態有錯誤。
常量值: -1 (0xffffffff)
public static final int STREAM_ALARM
用於報警的音訊流。
常量值: 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
用於系統聲音的音訊流。
常量值: 1 (0x00000001)
public static final int STREAM_VOICE_CALL
用於電話的音訊流。
常量值: 0 (0x00000000)
public static final int USE_DEFAULT_STREAM_TYPE
建議使用預設的流型別。這可能不適用於所有需要流型別的地方。
常量值: -2147483648 (0x80000000)
public static final String VIBRATE_SETTING_CHANGED_ACTION
廣播intent,表明振動設定已改變。包括振動型別和其新設定。
參照
EXTRA_VIBRATE_TYPE
EXTRA_VIBRATE_SETTING
常量值: "android.media.VIBRATE_SETTING_CHANGED"
public static final int VIBRATE_SETTING_OFF
建議不振動的振動設定
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
常量值: 0 (0x00000000)
public static final int VIBRATE_SETTING_ON
建議在合適時振動的振動設定。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
常量值: 1 (0x00000001)
public static final int VIBRATE_SETTING_ONLY_SILENT
建議只在振動鈴聲模式中振動的振動設定。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
常量值: 2 (0x00000002)
public static final int VIBRATE_TYPE_NOTIFICATION
與通知相符的振動型別。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
shouldVibrate(int)
常量值: 1 (0x00000001)
public static final int VIBRATE_TYPE_RINGER
與振鈴相符的振動型別。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
shouldVibrate(int)
常量值: 0 (0x00000000)
公共方法
public int abandonAudioFocus (AudioManager.OnAudioFocusChangeListener l)
放棄音訊焦點。若存在先前焦點擁有者,則使它接收焦點。
引數
I 請求焦點的監聽器。
返回值
AUDIOFOCUS_REQUEST_FAILED或 AUDIOFOCUS_REQUEST_GRANTED
public void adjustStreamVolume (int streamType, int direction, int flags)
通過同一方向的一步調整特定流的音量。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
streamType 欲調整的流型別。 值為STREAM_VOICE_CALL, STREAM_SYSTEM,
STREAM_RING, STREAM_MUSIC或STREAM_ALARM。
Direction 欲調整音量的方向。值為ADJUST_LOWER, ADJUST_RAISE, 或
ADJUST_SAME.
Flags 一個或多個標誌。
參照
adjustVolume(int, int)
setStreamVolume(int, int, int)
public void adjustSuggestedStreamVolume (int direction, int suggestedStreamType, int flags)
調整最相關流或給定的回放流的音量。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
direction 欲調整音量的方向。 值為 ADJUST_LOWER, ADJUST_RAISE,
或 ADJUST_SAME.
suggestedStreamType 若不存在相關流,則用該流型別。
USE_DEFAULT_STREAM_TYPE在這是有效的。
Flags 一個或多個標誌。
參照
adjustVolume(int, int)
adjustStreamVolume(int, int, int)
setStreamVolume(int, int, int)
public void adjustVolume (int direction, int flags)
調整最相關流的音量。例如,若在通話中,不管通話螢幕是否顯示,它都將擁有最高的
優先順序。另一個例子,若音樂正在後臺播放且不在通話中,剛將調整音訊流。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
direction 欲調整音量的方向。 值為ADJUST_LOWER, ADJUST_RAISE, 或
ADJUST_SAME.
flags 一個或多個標誌。
參照
adjustSuggestedStreamVolume(int, int, int)
adjustStreamVolume(int, int, int)
setStreamVolume(int, int, int)
public int getMode ()
返回當前的音訊模式。
返回值
當前音訊模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL 或
MODE_IN_COMMUNICATION). 從HAL中返回當前音訊狀態。
public String getParameters (String keys)
獲得音訊硬體設定的引數值變數。
引數
keys 引數列表
返回值
鍵值對形式的引數列表: key1=value1;key2=value2;...
public int getRingerMode ()
返回當前鈴聲模式。
返回值
當前鈴聲模式,值為RINGER_MODE_NORMAL, RINGER_MODE_SILENT, 或
RINGER_MODE_VIBRATE.
參照
setRingerMode(int)
public int getRouting (int mode)
已棄用。
不要直接查詢音訊路由,用方法isSpeakerphoneOn(), isBluetoothScoOn(), isBluetoothA2dpOn() and isWiredHeadsetOn()代替。
返回指定模式的當前音訊路由位向量。
引數
mode 獲取路由的音訊模式 (e.g., MODE_RINGTONE)
返回值
可以與ROUTE_xxx相比較的一個音訊路由位向量
public int getStreamMaxVolume (int streamType)
返回特定流的最大音量索引。
引數
streamType 返回最大音量索引的流型別。
返回值
流的最大有效音量索引。
參照
getStreamVolume(int)
public int getStreamVolume (int streamType)
返回特定類的當前音量索引。
引數
streamType 返回音量索引的流型別。
返回值
The current volume index for the stream.
流的當前音量索引。
參照
getStreamMaxVolume(int)
setStreamVolume(int, int, int)
public int getVibrateSetting (int vibrateType)
返回振動型別對應的使用者振動設定。
大多數需要振動的客戶端不應該使用這個方法,用shouldVibrate(int)代替。
引數
vibrateType 振動型別。值為VIBRATE_TYPE_NOTIFICATION或
VIBRATE_TYPE_RINGER。
返回值
振動設定,值為VIBRATE_SETTING_ON, VIBRATE_SETTING_OFF, 或
VIBRATE_SETTING_ONLY_SILENT.
參照
setVibrateSetting(int, int)
shouldVibrate(int)
public boolean isBluetoothA2dpOn ()
檢查A2DP音訊路由到藍芽耳機是否開啟。
返回值
true if A2DP audio is being routed to/from Bluetooth headset; false if otherwise
若A2DP音訊被路由到/從藍芽耳機,返回ture。反之,返回false。
public boolean isBluetoothScoAvailableOffCall ()
表明當前平臺是否支援使用SCO關閉通話用例。當電話不在通話中,應用程式需要使用藍芽SCO音訊,必須先呼叫這個方法以確保平臺支援這一特性。
返回值
true if bluetooth SCO can be used for audio when not in call false otherwise
若當不在通話中時音訊可以使用藍芽SCO,返回ture。反之,返回false。
參照
startBluetoothSco()
public boolean isBluetoothScoOn ()
檢查通訊是否使用藍芽SCO。
返回值
若通訊使用SCO,返回true。反之,返回false。
public boolean isMicrophoneMute ()
檢查麥克風是否靜音。
返回值
若麥克風靜音,返回true。反之,返回false。
public boolean isMusicActive ()
檢查是否有音樂是活動的。
返回值
若有音樂曲目是活動的,返回true。
public boolean isSpeakerphoneOn ()
檢查喇叭擴音器是否開著。
返回值
若喇叭擴音器開著,返回true。反之,返回false。
public boolean isWiredHeadsetOn ()
檢查音訊路由到有線耳機是否開著。
返回值
若音訊被路由到/從有線耳機,返回true。反之,返回false。
public void loadSoundEffects ()
載入音效。當音效可用時,要先呼叫這個方法。
public void playSoundEffect (int effectType, float volume)
播放音效(按鍵聲音,開啟/關閉蓋子)
引數
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 音效的音量。 音量值是原始標量so UI controls should be scaled logarithmically. 若音量指定為-1,用AudioManager.STREAM_MUSIC 流音量減去3dB。注意:這個版本應用於啟動和控制音量皮膚的設定。
public void playSoundEffect (int effectType)
播放音效(按鍵聲音,開啟/關閉蓋子)
引數
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,注意:這個版本使用UI設定決定聲音能否
被聽見。
public void registerMediaButtonEventReceiver (ComponentName eventReceiver)
註冊一個元件,它是MEDIA_BUTTON intent的唯一接收器。
引數
eventReceiver 接收媒體按鈕intent的BroadcastReceiver 的標誌符。這個廣播
接收器必須在應用程式清單中宣告。
public int requestAudioFocus (AudioManager.OnAudioFocusChangeListener l, int streamType, int durationHint)
請求音訊焦點。傳送請求以獲得音訊焦點。
引數
l 音訊焦點改變時通知的接收器。
streamType 受焦點請求影響的主要音訊流型別。
durationHint 用AUDIOFOCUS_GAIN_TRANSIENT表示這個焦點請求是暫時的,很快會放棄這個焦點。暫時請求的例子有操縱方向的回放,通知聲音。用AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK表示若先前焦點擁有者躲開它的音訊輸出,它保持播放是可行的。AUDIOFOCUS_GAIN用於一個求和持續時間的焦點請求,如回放歌曲或音訊。
返回值
AUDIOFOCUS_REQUEST_FAILED或 AUDIOFOCUS_REQUEST_GRANTED
public void setBluetoothA2dpOn (boolean on)
已棄用。
不要使用。
引數
on 若為true,路由A2DP音訊到/從藍芽耳機;若為false,禁用A2DP音訊。
public void setBluetoothScoOn (boolean on)
請求在通訊中使用藍芽SCO耳機。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
on 若為true,在通訊中使用藍芽SCO;若為false,不使用。
public void setMicrophoneMute (boolean on)
設定麥克風是否靜音。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
on 若為ture,麥克風靜音。若為flase,不靜音。
public void setMode (int mode)
設定音訊模式。
音訊模式包含音訊路由和電話層的行為。因此,這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。特別地,MODE_IN_CALL模式只能用在當打電話時的電話程式中,因為它會引起訊號從音訊層饋入到平臺混音器。
引數
mode 請求的音訊模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL
或MODE_IN_COMMUNICATION)。通知HAL當前的音訊狀態以便它能
適當的路由音訊。
public void setParameters (String keyValuePairs)
給音訊硬體設定一個可變數目的引數值。
引數
keyValuePairs 鍵值對形式的引數列表:key1=value1;key2=value2;...
public void setRingerMode (int ringerMode)
設定鈴聲模式。
靜音模式會靜音且不會振動。振動模式會靜音且會振動。正常模式是聽得見的且根據使用者設定決定是否振動。
引數
ringerMode 鈴聲模式。值為RINGER_MODE_NORMAL, RINGER_MODE_SILENT,
or RINGER_MODE_VIBRATE.。
參照
getRingerMode()
public void setRouting (int mode, int routes, int mask)
已棄用。
不要直接設定音訊路由,用方法setSpeakerphoneOn(), setBluetoothScoOn()代替。
為特定模式設定音訊路由。
引數
mode 改變路由的音訊模式。E.g., MODE_RINGTONE.
routes 請求路由的位向量,由一個或多個ROUTE_xxx型別建立。設定位表
明路由應該開啟。
mask 改變路由位向量由一個或多個ROUTE_xxx型別建立復原位表明路由
應該不改變。
public void setSpeakerphoneOn (boolean on)
設定喇叭擴音器開啟或關閉。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
on 為true開啟喇叭擴音器;為false關閉喇叭擴音器。
public void setStreamMute (int streamType, boolean state)
靜音或不靜音音訊流。
靜音命令被保護以免客戶端程式死亡:若具有流上的活動靜音請求的程式死亡,這個流會自動取消靜音。
對於給定的流,靜音請求是累計的:AudioManager會從一個或多個客戶端接收數個靜音請求,只有當接收到相同數目的取消靜音請求時流才會取消靜音。
為了更好的使用者體驗,應該程式必須在onPause()中取消已靜音流,若合適在onResume()中再次靜音
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
streamType 欲靜音/取消靜音的流。
state 請求靜音狀態:若為true,靜音;若為false,取消靜音。
public void setStreamSolo (int streamType, boolean state)
單獨的或不單獨的一個特定類。其它流靜音。
保護solo命令以免客戶端程式死亡:若有在流上活動的solo請求的程式死亡,所有的流都被靜音,因為這一請求被自動取消靜音。
對給定類的solo請求是累計的:AudioManager會從一個或多個客戶端接收數個solo請求,只有當接收到相同數目的unsoloed請求時流才會是unsoloed。
為了更好的使用者體驗,應該程式必須在onPause()中unsole a soloed 流,若合適在onResume()中再次solo。
引數
streamType soloed/unsolod的流。
state 請求的solo狀態:solo開啟為true,關閉為false。
public void setStreamVolume (int streamType, int index, int flags)
設定特定流的音量索引。
引數
streamType 欲設定音量索引的流。
index 欲設定的音量索引。參照getStreamMaxVolume(int) 獲得最大有效值。
flags 一個或多個標誌。
參照
getStreamMaxVolume(int)
getStreamVolume(int)
public void setVibrateSetting (int vibrateType, int vibrateSetting)
當振動型別應該振動時,設定配置。
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式。
引數
vibrateType 振動型別。值為VIBRATE_TYPE_NOTIFICATION 或
VIBRATE_TYPE_RINGER。
vibrateSetting 振動設定。值為VIBRATE_SETTING_ON, VIBRATE_SETTING_OFF,或
VIBRATE_SETTING_ONLY_SILENT。
參照
getVibrateSetting(int)
shouldVibrate(int)
public void setWiredHeadsetOn (boolean on)
已棄用。
不再使用。
設定開啟或關閉音訊路由到有線耳機。
引數
on 為true,設定路由音訊到/從有線耳機;為false, 禁用有線耳機音訊。
public boolean shouldVibrate (int vibrateType)
根據使用者的設定和當前鈴聲模式,返回一個特定型別是否應該振動。
使用通知來振動的大多數客戶端不應該使用這個方法。若策略不允許,通知管理器不會振動,故客戶端常常設定振動模式且讓通知管理器控制是否振動。
引數
vibrateType 振動型別。值為VIBRATE_TYPE_NOTIFICATION或
VIBRATE_TYPE_RINGER。
返回值
在呼叫這個方法的瞬間,型別是否應該振動。
參照
setVibrateSetting(int, int)
getVibrateSetting(int)
public void startBluetoothSco ()
啟動藍芽SCO音訊連線。
需要許可權:MODIFY_AUDIO_SETTINGS。
當電話不在通話中,想傳送/接收音訊到/從藍芽SCO耳機的應用程式可以使用這個方法。
由於SCO連線會花費幾秒鐘,應用程式不應該依賴方法返回的可用連線,而是註冊接
收intent ACTION_SCO_AUDIO_STATE_CHANGED,並等待狀態變為SCO_AUDIO_STATE_CONNECTED。
由於不保證連線成功,應用程式必須等待這個intent超時。
當完成SCO連線或建立超時,應用程式必須呼叫stopBluetoothSco()去清空請求並關閉藍芽連線。
即使SCO連線已建立,下列限制應用在音訊輸出流以使他們被路由到SCO耳機:1.流型別必須是STREAM_VOICE_CALL 2.格式必須是mono 3.取樣必須是16kH或8kHz。
下列限制應用在輸出流: 1.格式必須是mono2.取樣必須是16kH或8kHz。
注意電話應用程式總是有使用SCO連線的優先權。當電話在通話中,呼叫這個方法會被忽略。類似,當應用程式正在使用SCO連線,若接聽來電或呼叫傳送,連線會丟失且不會在通話結束後自動返回。
參照
stopBluetoothSco()
ACTION_SCO_AUDIO_STATE_CHANGED
public void stopBluetoothSco ()
停止藍芽SCO音訊連線。
需要許可權:MODIFY_AUDIO_SETTINGS。
應用程式用startBluetoothSco()請求使用藍芽SCO音訊,當應用程式完成SCO連線或建立時間超時, 必須呼叫這個方法。
參照
startBluetoothSco()
public void unloadSoundEffects ()
不載入音效。當音效被禁用時,呼叫這個方法釋放一些記憶體。
public void unregisterMediaButtonEventReceiver (ComponentName eventReceiver)
移除註冊MEDIA_BUTTON intent的接收器。
引數
eventReceiver 用registerMediaButtonEventReceiver(ComponentName)註冊的BroadcastReceiver的識別符號。
補充
文章精選
Android 小專案之--使用【AudioManager】類控制音量
轉載請註明本文地址:Android中文API(129) —— AudioManager
相關文章
- AudioManager
- Android中文API(137) —— LocalSocketAndroidAPI
- Android APIAndroidAPI
- PopupWindow使用詳解(一)中文API文件贈送ListPopupWindow中文APIAPI
- 【譯】Android API 規範AndroidAPI
- Android API相容,其他API,UI適配(2)AndroidAPIUI
- Android API相容,其他API,UI適配(3)AndroidAPIUI
- Android API相容,其他API,UI適配(------ 分割線 -----)AndroidAPIUI
- POI匯入Excel中文API文件ExcelAPI
- DOJO API 中文參考手冊API
- 129-Sum Root to Leaf Numbers
- 【譯】Android NDK API 規範AndroidAPI
- Android各版本對應Android API(知識累積)AndroidAPI
- LeetCode 129. Sum Root to Leaf NumbersLeetCode
- Kotlin(android)協程中文翻譯KotlinAndroid
- Android Gradle 依賴配置:implementation & apiAndroidGradleAPI
- Android實現模組 api 化AndroidAPI
- Android Studio 3.0 Android 分析器 | 中文教學視訊Android
- Koa v2.x 中文文件 APIAPI
- tyFlow Script運算子API中文翻譯文件API
- PostgreSQL DBA(129) - Extension(pg_variables).mdSQL
- Android Power Placeholder | 中文教學視訊Android
- Android API開發之OpenGL開發之Android OpenGL STL詳解AndroidAPI
- Android視訊開發進階(part3-Android的Media API)AndroidAPI
- 解決Android打包com.android.build.api.transform.TransformException的問題AndroidUIAPIORMException
- 牛客練習賽129 A-數數
- jQuery EasyUI API 中文文件 - 表單(form補充)jQueryUIAPIORM
- Android UI 及 API 優化指南|Android 開發者 FAQ Vol.10AndroidUIAPI優化
- 129、springcloud-eureka-client微服務的互相呼叫SpringGCCloudclient微服務
- linux 下 android studio 不能輸入中文記錄LinuxAndroid
- Android開發中API層的最佳實踐AndroidAPI
- Android 版本適配:9.0 Pie(API 級別 28)AndroidAPI
- Android Media Framework(三)OpenMAX API閱讀與分析AndroidFrameworkAPI
- 軟體開發公司概述Android指紋APIAndroidAPI
- 使用google翻譯 api 翻譯中文成其他語言GoAPI
- 129 - 求根到葉子節點數字之和 - PythonPython
- android api各個版本特性簡單描述到6.0AndroidAPI
- Android sdk版本號和API級別的對照表AndroidAPI