当前位置: 首页>移动开发>正文

Android 设置耳机 播放通话音量 安卓耳机怎么调音量

声音类型调节音量
声音模式设置(正常和通话模式)
声音设备选择(本身喇叭,普通耳机,蓝牙耳机)

 

声音类型调节音量
adjustStreamVolume(int streamType, int  direction, int flags)
streamType常用:   
STREAM_ALARM 警报  
STREAM_MUSIC 音乐回放即媒体音量  
STREAM_NOTIFICATION 窗口顶部状态栏Notification,  
STREAM_RING 铃声  
STREAM_SYSTEM 系统  
STREAM_VOICE_CALL 通话  
STREAM_DTMF 双音多频,拨号键的声音
direction,是调整的方向,增加或减少,可以是:
ADJUST_LOWER 降低音量  
ADJUST_RAISE 升高音量  
ADJUST_SAME 保持不变,这个主要用于向用户展示当前的音量  
flags,是附加参数:
FLAG_PLAY_SOUND 调整音量时播放声音  
FLAG_SHOW_UI 调整时显示音量条,就是按音量键出现的界面
FLAG_REMOVE_SOUND_AND_VIBRATE 无振动无声音
FLAG_ALLOW_RINGER_MODES Whether to include ringer modes as possible options when changing volume.
FLAG_VIBRATE Whether to vibrate if going into the vibrate ringer mode

声音模式设置(正常和通话模式)(只应用通话应用中,其他都是正常模式)
setMode(int mode)
需要权限<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
MODE_NORMAL(正常模式,即在没有铃音与电话的情况)(按系统按键调节的是铃声大小)
MODE_RINGTONE(铃响模式)(按系统按键调节的是铃声大小)
MODE_IN_CALL(接通电话模式)(按系统按键调节是通话音大小)
MODE_IN_COMMUNICATION(通话模式)(按系统按键调节是通话音大小)

 

声音输出通道选择(本身喇叭(小喇叭(打电话时放到耳边的听筒)和大喇叭(打电话时的外放))speeker,普通耳机headset,蓝牙耳机(耳机承接的只是小喇叭的声音,设置声音模式为MODE_NORMAL时插上耳机都会把大喇叭声转到耳机上)bluetools)(只应用通话应用中)在MODE_IN_CALL和MODE_IN_COMMUNICATION的模式下才存在小喇叭大喇叭切换,使用setSpeakerphoneOn来切换。
声音输出通道切换一般系统会给默认切换的。突然插入耳机会把声音自动切换到耳机,不需要处理。突然连接了蓝牙耳机也会把声音自动切换到蓝牙耳机(bluetoothA2DP是蓝牙耳机,bluetoothSco不是蓝牙耳机是一种sco通到可能自定义的蓝牙设备上),也可自主选择(setSpeakerphoneOn setWiredHeadsetOn(过期了不可用) setBluetoothScoOn)

 

监听耳机插拔事件注册广播事件Intent.ACTION_HEADSET_PLUG不需要权限
监听蓝牙耳机连接断开事件注册广播事件BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED需要权限android.permission.BLUETOOTH
事件ACTION_AUDIO_STATE_CHANGED和bluetoothSco的设置配合使用,不是蓝牙耳机的事件。应该和startBluetoothSco() stopBluetoothSco()有关。


https://www.xamrdz.com/mobile/4ww1932583.html

相关文章: