Как настроить вывод аудио устройства на Android OpenSL ES? - PullRequest
0 голосов
/ 20 декабря 2018

Я делаю плеер, который должен играть только через наушники (проводные или Bluetooth), но не через динамик.Если вы выключите наушники во время воспроизведения, плеер автоматически сделает паузу.После подключения наушников (Bluetooth) и получения события ACTION_AUDIO_STATE_CHANGED возобновление воспроизведения.Но на несколько секунд звук проходит через встроенный динамик и только потом идет в наушники.Я думаю, чтобы исправить это, установив устройство для вывода.Я могу получить идентификатор устройства из AudioManager.Но как передать его в OpenSL ES?

Или, может быть, есть способ полностью предотвратить воспроизведение через встроенный динамик?

Или другой способ решения этой проблемы?

PS Санта, где ты, когда ты так нужен?Помогите мне, пожалуйста!

1 Ответ

0 голосов
/ 27 декабря 2018

Возможно, вы могли бы прослушивать этот другой тип событий с помощью BroadcastReceiver:

BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED -> {
            state = intent.getIntExtra(BluetoothA2dp.EXTRA_STATE, -1)
            when (state) {
                BluetoothA2dp.STATE_CONNECTED -> {
                    // Do something
                }
                BluetoothA2dp.STATE_DISCONNECTED -> {
                    // Do something else
                }
            }
        }
...