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);  
另外必须加上权限:"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);                                                                                                                                                                                                                                                                                                                                                                    
        }
 }

你可能感兴趣的:(Android之摆脱青铜)