Объединить части ШОС с частями A2DP - PullRequest
0 голосов
/ 01 апреля 2020

Я ищу пару стереозвука A2DP с функцией прерывания AudioManager MODE_IN_COMMUNICATION. Цель этого соединения - вставить фрагменты пользовательских файлов musi c в трансляции AM / FM, используя musi c как нечто, «набирающее» устройство Android и останавливающее трансляцию AM / FM.

У меня это работает прилично с SCO, используя следующий код для начала «телефонного звонка».

Вот код AudioManager:

AudioManager localAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
localAudioManager.setMode(0);
localAudioManager.setBluetoothScoOn(true);
localAudioManager.startBluetoothSco();
localAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);

Вот MediaPlayer, который я пытаюсь воспроизвести:

MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioAttributes(new AudioAttributes.Builder()
    .setUsage(AudioAttributes.USAGE_MEDIA)
    .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
    .build());

mediaPlayer.setDataSource("https://wmbr.org/WMBR_Archive_128.m3u");
mediaPlayer.prepare();
mediaPlayer.start();

Звук, созданный этим Код некачественный и моно, а не стерео. Я хотел бы изменить это.

Проблема в том, что Android Сайт разработчика для startBluetoothSco говорит:

Даже если соединение SCO установлено, следующие ограничения применяются к выходным аудиопотокам, чтобы их можно было направить на гарнитуру SCO: - тип потока должен быть STREAM_VOICE_CALL - формат должен быть моно - выборка должна быть 16 кГц или 8 кГц

Существует ли какой-либо способ объединить стереозвук и функцию прерывания?

Дополнительный контекст : в этот ответ кажется, что MODE_IN_COMMUNICATION и MODE_IN_CALL используют стратегию маршрутизации PHONE. Он также говорит:

Если ваш аксессуар BT поддерживает профиль громкой связи, он будет использовать канал SCO для голосового аудио, а канал ACL, используемый для A2DP, должен быть закрыт, чтобы избежать помех между ними.

Я предполагаю, что это означает, что мой единственный вариант - настраиваемая стратегия маршрутизации, и я не уверен, что это влечет за собой.

...