Android 揚聲器與聽筒的切換
阿新 • • 發佈:2019-02-20
本文主要實現揚聲器與聽筒的切換.而android中實現對音量和振鈴模式的控制主要通過AudioManager類來實現.
AudioManager類 關於喇叭與聽筒的主要方法
1. AudioManager 例項化
public void setSpeakerphoneOn (boolean on)
設定喇叭擴音器開啟或關閉.
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式
引數
3.isSpeakerphoneOn
public boolean isSpeakerphoneOn ()
檢查喇叭擴音器是否開著.
返回值
public void setMode (int mode)
設定音訊模式.
音訊模式包含音訊路由和電話層的行為.因此,這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式.特別地,MODE_IN_CALL模式只能用在當打電話時的電話程式中,因為它會引起訊號從音訊層饋入到平臺混音器.
引數
mode 請求的音訊模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL
或MODE_IN_COMMUNICATION) .通知HAL當前的音訊狀態以便它能
適當的路由音訊.
5. 例項實現
至此,本文講解結束!
AudioManager類 關於喇叭與聽筒的主要方法
1. AudioManager 例項化
用Context.getSystemService(Context.AUDIO_SERVICE)得到這個類的例項.
2. setSpeakerphoneOnpublic void setSpeakerphoneOn (boolean on)
設定喇叭擴音器開啟或關閉.
這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式
引數
on 為true開啟喇叭擴音器;為false關閉喇叭擴音器.
public boolean isSpeakerphoneOn ()
檢查喇叭擴音器是否開著.
返回值
若喇叭擴音器開著,返回true.反之,返回false.
4. setModepublic void setMode (int mode)
設定音訊模式.
音訊模式包含音訊路由和電話層的行為.因此,這個方法只能用於代替音訊設定的平臺範圍管理應用程式或主要電話應用程式.特別地,MODE_IN_CALL模式只能用在當打電話時的電話程式中,因為它會引起訊號從音訊層饋入到平臺混音器.
引數
mode 請求的音訊模式(MODE_NORMAL, MODE_RINGTONE, MODE_IN_CALL
或MODE_IN_COMMUNICATION)
適當的路由音訊.
5. 例項實現
private AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE); /** * 揚聲器與聽筒切換 * @param isSpeakerphoneOn */ public void setSpeakerphoneOn(boolean isSpeakerphoneOn){ audioManager.setSpeakerphoneOn(isSpeakerphoneOn); if(!isSpeakerphoneOn){ audioManager.setMode(AudioManager.MODE_NORMAL); } }
至此,本文講解結束!