我创建了应用到Android Sinch应用的应用。当用户在通话时没有耳机时,它在扬声器上工作,但是如果用户连接耳机,它不会自动连接到耳机,而我需要手动将扬声器静音并将其连接到耳机。请检查我完成的代码。
private void enableSpeaker(boolean enable) {
AudioController audioController = getSinchServiceInterface().getAudioController();
if (enable)
audioController.enableSpeaker();
else
audioController.disableSpeaker();
switchVolume.setImageDrawable(ContextCompat.getDrawable(this, isSpeaker ? R.drawable.ic_speaker : R.drawable.ic_speaker_off));
}
private void setMuteUnmute() {
AudioController audioController = getSinchServiceInterface().getAudioController();
if (isMute) {
audioController.mute();
switchMic.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.ic_mic_off));
} else {
audioController.unmute();
switchMic.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.ic_mic_on));
}
}
我认为您已通过onCallEstablished
方法启用了Speaker。
从enableSpeaker()
方法中删除onCallEstablished
方法,并如下添加enableAutomaticAudioRouting()
。
有关详细信息,请查看Sinch文档Here
@Override
public void onCallEstablished(Call call)
{
AudioController audioController = getSinchServiceInterface().getAudioController();
audioController.enableAutomaticAudioRouting(true, AudioController.UseSpeakerphone.SPEAKERPHONE_AUTO);
}