天天看点

播放音频听筒外放切换

/**
 * 设置播放模式
 */
fun setAudioStreamType(speaker: Boolean) {
    initAudioManager()
    if (speaker) {
        audioManager!!.setSpeakerphoneOn(true)
        audioManager!!.setMode(AudioManager.MODE_NORMAL)
    } else {
        audioManager!!.setSpeakerphoneOn(false)//关闭扬声器
        //5.0以上
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            audioManager!!.setMode(AudioManager.MODE_IN_COMMUNICATION
        } else {
            audioManager!!.setMode(AudioManager.MODE_IN_CALL)
        }
    }
}

private fun initAudioManager() {
    if (audioManager == null){
        audioManager = context().getSystemService(AUDIO_SERVICE) as AudioManager
    }
}      

切记需要权限    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />