Разве Bluez (bluetoothd) не отправляет DBUS method_call SelectConfiguration после Соединения? Если так, как я ловлю его?

ОБНОВЛЕНИЕ: не решенный все же, но часть решения. Посмотрите ниже.

Я пытаюсь подключить свой iPod или другое интеллектуальное устройство к моему ноутбуку (Kubuntu 13.10) через Bluetooth и поток a2dp-закодированная музыка к беспроводной колонке. Не берите в голову, почему я не соединяю их непосредственно. Я испытал много затруднений, получив устройства к на самом деле паре, затем соединяются одновременно, но теперь я могу сделать это. Существует миллион сообщений там, которые описывают различные способы подключить гарнитуры BT путем изменения .asoundrc, /etc/bluetooth/audio.conf, и загрузка a loopback модуль через контроллер PulseAudio. Однако я никогда не мог заставлять PulseAudio последовательно загружать источники и приемники, таким образом, я поцарапал ту идею и запустился после этого большого сообщения James B: Bluez A2DP AudioSink для ALSA

Я скомпилировал код. Это использует (более новый?) DBus API для BlueZ. Следуя его инструкциям, я смог передать музыку по каналу в a2dp "сервер" или из него, но нет никакого звука. В коде он ожидает двух DBUS method_calls, SelectConfiguration и SetConfiguration для получения "транспорта", который я думаю, дескриптор или дескриптор файла, который описывает, куда аудио должно перейти в. Однако обработчики для этих событий никогда не называют. Я настроил dbus-monitor слушать на системной шине для этих вызовов с помощью этого руководства DebuggingDBus. Однако вызовы метода не показывают. С другой стороны я пытался слушать ЛЮБЫЕ вызовы метода на системной шине и существуют некоторые, которые не показывают в dbus-мониторе, что я знаю, называются. (т.е. RegisterEndpoint)

Я вижу сигналы от org.bluez, но никакие вызовы метода. При выполнении bluetoothd в подробном режиме я получаю что-то вроде этого, когда я подключаю свое устройство:

bluetoothd[12118]: audio/a2dp.c:setup_ref() 0x7f9e8ffbdac0: ref=2
bluetoothd[12118]: audio/avdtp.c:avdtp_set_configuration() 0x7f9e8ffd03f0: int_seid=1, acp_seid=1
bluetoothd[12118]: audio/a2dp.c:setup_unref() 0x7f9e8ffbdac0: ref=1 
bluetoothd[12118]: audio/avdtp.c:session_cb()
bluetoothd[12118]: audio/avdtp.c:avdtp_parse_resp() SET_CONFIGURATION request succeeded
bluetoothd[12118]: audio/a2dp.c:setconf_cfm() Source 0x7f9e8ffa4600: Set_Configuration_Cfm
bluetoothd[12118]: audio/avdtp.c:avdtp_sep_set_state() stream state changed: IDLE -> CONFIGURED
bluetoothd[12118]: audio/avdtp.c:session_cb()
bluetoothd[12118]: audio/avdtp.c:avdtp_parse_resp() OPEN request
succeeded

но на другом сообщении я видел, что у кого-то было это:

bluetoothd[8315]: audio/a2dp.c:setup_ref() 0x7f1f8300b000: ref=2 <br/>
bluetoothd[8315]: audio/avdtp.c:avdtp_set_configuration() 0x7f1f83012250: int_seid=2, acp_seid=1
bluetoothd[8315]: audio/a2dp.c:setup_unref() 0x7f1f8300b000: ref=1
bluetoothd[8315]: audio/avdtp.c:session_cb()
bluetoothd[8315]: audio/avdtp.c:avdtp_parse_resp() SET_CONFIGURATION request succeeded
bluetoothd[8315]: audio/a2dp.c:setconf_cfm() Sink 0x7f1f82fc3210: Set_Configuration_Cfm
**
bluetoothd[8315]: audio/media.c:media_endpoint_async_call() Calling SetConfiguration: name = :1.65 path = /MediaEndpoint/A2DPSink
**
bluetoothd[8315]: audio/avdtp.c:avdtp_sep_set_state() stream state changed: IDLE -> CONFIGURED
bluetoothd[8315]: audio/avdtp.c:session_cb()
bluetoothd[8315]: audio/avdtp.c:avdtp_parse_resp() OPEN request succeeded

В этой точке у меня есть две теории:

  1. BlueZ не отправляет это на шину, которую я наблюдаю, когда мое устройство подключено.
  2. Я не смотрю правильно (сделайте method_calls также должен быть добавлен с dbus_bus_add_match () ?)

Мне трудно верить второму, так как код B James работал на него, и я не изменил его. Я использую версию 4.101 блюза. (то же как он, я думаю), трудно найти точные условия, при которых BlueZ называет эти методы.

В моем системном журнале говорится что-то вроде этого, когда я запускаю программу:

bluetoothd[8519]: Endpoint registered: sender=:1.166 path=/MediaEndpoint/A2DPSource

и нерегистры также, когда программа выходит.

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

ОБНОВЛЕНИЕ: Немного смущающий, но я ломал голову сегодня о том, почему СИСТЕМА LINUX не получит дескриптор файла... hmmm..., таким образом, я добавил sudo к вызову программы (James программа B a2dp-alsa), и это работало. По крайней мере, для устройства ввода данных. Тем не менее ничто для вывода (динамик BT), но я попытаюсь понять это скоро и отправить результат здесь.

4
задан 25 March 2014 в 12:47

0 ответов

Другие вопросы по тегам:

Похожие вопросы: