編輯:Android開發實例
前言
本章內容是android.media.AudioManager,版本為Android 3.2 r1,翻譯來自"文炜。
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的標識符。
轉自:http://www.cnblogs.com/over140/archive/2011/08/07/2130393.html
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
正弦波大家在數學中都學過,但是在Android開發中如何繪制正弦波呢?本文將給出一個開發實
屏幕亮度自動調節:主要是從Sensor分析之中分離出來分析LIGHT 光線感應器,因此就分析一下自動調節屏幕亮度(手機隨著光線的強度自我調節,也就是在亮的光線下屏
以前也模仿者ireader實現了書架的效果,但是那種是使用listview實現的,並不好用。絕大多數都是用gridview實現的,網上這方面資料比較少,有些開源的