Android 話筒、聽筒、揚聲器
話筒是輸入(麥克風),聽筒、揚聲器是輸出(喇叭)
聽筒/揚聲器:
- 聽筒是用來聽對方傳送過來的聲音,手機放的MP3和開機鈴聲是從喇叭發出的。
- 聽筒模式,就是手機上一般聽電話的內建小耳機,聲音較小。
- 揚聲器模式,就是聲音外放,聲音較大
話筒:
- 傳聲器是一個聲-電轉換器件(也可以稱為換能器或感測器),是和喇叭正好相反的一個器件(電→聲)。是聲音裝置的兩個終端,傳聲器是輸入,喇叭是輸出。
- 麥克風,學名為傳聲器,由Microphone翻譯而來。傳聲器是將聲音訊號轉換為電訊號的能量轉換器件,也稱話筒,麥克風,微音器
AudioManger物件通過getSystemService(Service.AUDIO_SERVICE)獲取
AudioManger常用的幾個方法void android.media.AudioManager.adjustStreamVolume(int streamType, int direction, int flags):第二個表示調整音樂的大小,第三個引數表示顯示調整是的標誌 AudioManager.FLAG_SHOW_UI;調整手機型別的聲音;第一個引數的幾個值
STREAM_ALARM:手機鬧鈴的聲音
STREAM_MUSIC:手機音樂的聲音
STREAM_DTMF:DTMF音調的聲音
STREAM_RING:電話鈴聲的聲音
STREAM_NOTFICATION:系統提示的聲音
STREAM_SYSTEM:系統的聲音
STREAM_VOICE_CALL:語音電話聲音
void android.media.AudioManager.setMicrophoneMute(boolean on)設定是否讓麥克風設定靜音
// 開啟揚聲器
audioManager.setSpeakerphoneOn(true);
void android.media.AudioManager.setRingerMode(int ringerMode):設定手機電話鈴聲的模式;支援的幾個屬性值
RINGER_MODE_NORMAL:正常的手機鈴聲
RINGER_MODE_SILENT:手機鈴聲靜音
RING_MODE_VIBATE:手機震動
void android.media.AudioManager.setStreamMute(int streamType, boolean state)將指定的音量型別調整為靜音
Android中開啟揚聲器關閉麥克風的程式碼實現:
//獲取音訊服務
AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
//設定聲音模式
audioManager.setMode(AudioManager.STREAM_MUSIC);
//關閉麥克風
audioManager.setMicrophoneMute(false);
// 開啟揚聲器
audioManager.setSpeakerphoneOn(true);
//例項化一個SoundPool物件
SoundPool soundPool =new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);
//載入聲音
int id = soundPool.load(this,R.raw.beep,5);
//播放聲音
soundPool.play(id, 1, 1, 0, 0, 1);
另外必須加上許可權:<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
Android 手機聽筒Earpiece和揚聲器speaker切換:
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
private void setSpeakerphoneOn(boolean on)
{
if(on)
{
audioManager.setSpeakerphoneOn(true);
} else
{
audioManager.setSpeakerphoneOn(false);//關閉揚聲器
//把聲音設定成Earpiece(聽筒)出來,設定為正在通話中
audioManager.setMode(AudioManager.MODE_IN_CALL);
}
}