Говорят телефон не работает в MODE_IN_CALL в Android версии 4.2.2 больше
У меня есть гарнитура и она подключена к моему телефону. Я попытался запрограммировать на включение динамика телефона (потому что я хочу перенести свой голос с гарнитуры на телефон). Однако, это не сработало, хотя я позвонил setSpeakerphoneOn(true). Проблема в том, что мой голос слышен в моей гарнитуре, а не в моем телефоне. Не могли бы вы увидеть мою конфигурацию и сообщить мне, в чем проблема? Спасибо
_audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
_audioManager.startBluetoothSco();
_audioManager.setMode(AudioManager.STREAM_VOICE_CALL);
_audioManager.setSpeakerphoneOn(true);
setVolumeControlStream(AudioManager.MODE_IN_CALL);
int maxJitter = AudioTrack.getMinBufferSize(SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT);
track = new AudioTrack(AudioManager.MODE_IN_COMMUNICATION, SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, maxJitter, AudioTrack.MODE_STREAM);
1 ответ
Я использовал приведенный ниже код для удаленного оповещения. Телефон звучит даже после подключения гарнитуры. Попробуйте один раз. Но не уверен, что это поможет вам.
AudioManager audioManager =
(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
DataFields.volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
audioManager.setSpeakerphoneOn(true);
audioManager.setMode(AudioManager.MODE_IN_CALL);
int max = audioManager.getStreamMaxVolume( AudioManager.STREAM_MUSIC);
Log.v("MAXVOLUME",""+max);
int volume;
while((volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC))<max) {
audioManager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_RAISE, 0);
}
int resID=context.getResources().getIdentifier("alarm", "raw", context.getPackageName());
mediaPlayer=MediaPlayer.create(context,resID);
mediaPlayer.setLooping(true);
mediaPlayer.start();