1. 程式人生 > >Android 話筒、聽筒、揚聲器

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);                                                                                                                                                                                                                                                                                                                                                                    
        }
 }