作者:记忆簿 | 来源:互联网 | 2023-08-07 16:56
这是我必须处理音频的代码:
fun setSpeakerValue(value: SIPManager.AUDIO) {
speaker = value
when (value) {
SIPManager.AUDIO.EAR_PIECE -> {
binding.callItemIconSpeaker.setImageResource(R.drawable.speaker_off)
if (Build.BRAND.toLowerCase(Locale.ROOT).contains("oneplus")) {
audioManager?.mode = AudioManager.MODE_IN_COMMUNICATION
} else audioManager?.mode = AudioManager.MODE_IN_CALL
audioManager?.stopBluetoothSco()
audioManager?.isBluetoothScoOn = false
audioManager?.isspeakerphOneon= false
speaker = SIPManager.AUDIO.EAR_PIECE
}
SIPManager.AUDIO.SPEAKER -> {
binding.callItemIconSpeaker.setImageResource(R.drawable.speaker_on)
audioManager?.mode = AudioManager.MODE_NORMAL
audioManager?.stopBluetoothSco()
audioManager?.isBluetoothScoOn = false
audioManager?.isspeakerphOneon= true
speaker = SIPManager.AUDIO.SPEAKER
}
SIPManager.AUDIO.BLUETOOTH -> {
binding.callItemIconSpeaker.setImageResource(android.R.drawable.stat_sys_data_bluetooth)
if (Build.BRAND.toLowerCase(Locale.ROOT).contains("huawei")) {
audioManager?.mode = AudioManager.MODE_IN_COMMUNICATION
} else audioManager?.mode = AudioManager.MODE_IN_CALL
audioManager?.startBluetoothSco()
audioManager?.isBluetoothScoOn = true
speaker = SIPManager.AUDIO.BLUETOOTH
}
}
}
现在,这对于我尝试过的所有手机都可以正常使用。但是对于Samsung S9和Note8,当我的SIP通话已连接时,它将首次选择蓝牙。
在那之后,更改为EAR_PIECE并没有任何作用,然后更改为Speaker,将其设置为扬声器,仅此而已。
无论我叫什么,它都会在Speaker上保持阻塞状态。
请帮助,其他人有这个问题吗?