Pulseaudio a2dp источник исчезает после приостановки транспорта Bluetooth - PullRequest
0 голосов
/ 18 сентября 2018

Я разработчик, который хочет использовать module-bluez-device для передачи аудиоданных моих устройств Android на сервер Linux. И я уже сделал это, я мог бы использовать встроенную библиотеку webrtc для захвата аудиоданных a2dp_source.

Но что меня смущает, так это то, что при изменении состояния транспорта bluetooth от воспроизведения к бездействию a2dp_source исчезнет, ​​что привело к изменению модуля захвата аудиоустройства webrtc для использования другого звукового устройства, такого как микрофон моего linux-сервера.

И если состояние Bluetooth изменится с режима ожидания на режим воспроизведения (воспроизведение музыки на Android), появится новый a2dp_source, но модуль захвата звука webrtc не изменится на использование нового a2dp_source, это моя проблема.Когда я подключаюсь к своему устройству Android и выполняю источники списка pactl, состояние a2dp_source равно SUSPENDED, а id равно 96 (Источник # 96).

Затем я играю музыку на моем андроиде, состояние a2dp_source изменяется наRUNNING.

После этого я останавливаю музыку на своем андроиде, состояние a2dp_source будет сохраняться, возможно, 3 секунды и, наконец, исчезнет.

Если я снова воспроизведу музыку на своем андроиде, новый a2dp_sourceпоказать с идентификатором 98 и состояние RUNING.

Я отслеживал стек вызовов после перехода состояния перехода bluez из режима ожидания в режим ожидания.

PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED (воспроизведение в режиме ожидания)

pa_card_profile_set_available (cp, PA_AVAILABLE_UNKNOWN) [module-bluez5-device.c]

profile_available_hook_callback [module-bluetooth-policy.c] ↓ * 10231024 * find_best_profile [module-bluetooth-policy.c]

if (card->active_profile.available == PA_AVAILABLE_UNKNOWN && anyotherProfile.available == PA_AVAILABLE_YES) {
//change to anyotherProfile
}

At here,anyotherProfile = off

set_profile_cb & stop_thread [module-bluez5-device.c]

a2dp_source исчезнуть

Если я прав, какое решение, по вашему мнению, лучше всего принять?

...