Профиль аудио Bluetooth A2DP поддерживает несколько кодеков. Все устройства должны поддерживать SBC (поддиапазонный кодек), тогда они могут поддерживать дополнительные «дополнительные кодеки», такие как MP3 и AAC, или «не A2DP» кодеки, такие как apt-X.
Конечно, эти кодеки на самом деле нельзя использовать, если приемник также не поддерживает их, и в этом случае оба устройства переключаются на SBC.
- Как узнать, какие кодеки поддерживают мое оборудование / ПЗУ?
- Как узнать, какой кодек используется в настоящее время? (Возможно, это также зависит от дорожки, например, если она передает файлы MP3 / AAC напрямую без перекодирования)
bluetooth
audio
a2dp
bluetooth-audio
эндолиты
источник
источник
Ответы:
На моем телефоне Cyanogen 10.1 (AOSP 4.2.2) можно включить захват трафика Bluetooth. Затем вы можете загрузить этот захват в Wireshark и просмотреть фазу согласования, чтобы определить, какие кодеки поддерживает сопряженное устройство вывода звука. Не уверен, что операционные системы поддерживают это: когда я впервые столкнулся с этим методом, он требовал поддержки только начиная с 4.4, но явно не в случае с CM на Doubleshot. :-)
Предполагая, что у вас есть необходимые настройки (с корнем ~ 4.2.2 или новее), это шаги:
Вы также можете выровнять временные метки захвата с временными метками журнала CatLog, чтобы искать предполагаемые записи журнала. Я нашел пару и ловко забыл включить их в заметки, на которых основан этот пост.
Как только у меня будет немного времени, я надеюсь сократить этот довольно длинный набор шагов до приложения, но не уверен, если это возможно, и у меня все равно не будет времени. Между тем, предложения по улучшению вышеуказанного процесса приветствуются.
источник
Discover
три возвращенных аудио приемника. ОтветGetCapabilities
наACP SEID [2 - Audio Sink]
включенныйService: Media Codec - Audio MPEG-1,2 Audio
который имелMP3: True
. Я загрузил захваченный лог-файл на github .Если посмотреть на источник, то есть как минимум 4 кодека: SBC (обязательный), MP3 (MPEG12), AAC (MPEG24) и Sony ATRAC.
Базовым программным обеспечением является стек "bluez" в Linux. Он поддерживает SBC и имеет ограниченные возможности MP3.
Список изменений для v3.25 (2009?) Гласит: «Добавить ограниченную поддержку кодека MPEG12 / MP3».
Смотрите также анонс v3.25 . Поддержка MP3, похоже, зависит от gstreamer, который недоступен на Android, поэтому я просто предполагаю, что SBC - единственный вариант загрузки A2DP.
PS: большинство устройств A2DP, похоже, не поддерживают MP3 / AAC из-за проблем с патентами / лицензированием (включая Linux).
источник
На устройствах Nexus 4 (5.0.1) или Nexus 7 (2012) (4.4.4) можно использовать режим разработчика для получения btsnoop_hci.log. Msgstr "Включить журнал отслеживания Bluetooth HCI". Нет необходимости рутировать устройства. Кажется, что оба устройства не предлагают aptx. Я тестирую это с Moto Stream (без aptx) и Philips AEA2500 (с aptx).
источник
[Благодарность за этот ответ в основном идет Эведелю, который пояснил, что ответ находится в файле btsnoop_hci.log, используя Wireshark; и prittstift69, чтобы поделиться простым способом создания этого файла журнала.]
Это пошаговое руководство для новичков, в котором кратко изложены ответы, которые уже даны, с некоторой интерпретацией полученных мной результатов.
Как уже упоминалось, prittstift69 и другие, вы можете «Включить журнал отслеживания Bluetooth HCI» в разделе «Параметры разработчика». Нет необходимости следовать более сложному подходу, предложенному ewedel.
Начните с выключения Bluetooth на устройстве Android (я назову это «телефон»).
Включите журнал отслеживания Bluetooth HCI в разделе «Параметры разработчика».
Включите Bluetooth на телефоне и подключите его к приемнику Bluetooth (я назову его «приемник»). Этот шаг предполагает, что приемник ранее был связан с телефоном.
Воспроизведите музыку на своем телефоне (в идеале, в несжатом формате WAV или FLAC). Десять секунд - это все, что тебе нужно. (Возможно, даже меньше)
Выключите Bluetooth на телефоне.
Отключить Bluetooth HCI Snoop Log
Перенесите файл btsnoop_hci.log (я нашел его в / sdcard / Android / Data /) на ваш компьютер. Запустите wireshark на своем компьютере и откройте файл btsnoop_hci.log
Фильтр для "btavdtp" (без кавычек) Поиск сообщения от телефона получателю "Sent Command - SetConfiguration ...." Это сообщение, отправленное телефоном получателю с окончательной конфигурацией, которая будет использоваться для этого аудио после того, как рукопожатие завершено. Текст в поле «Информация» скажет вам, какой была окончательная конфигурация.
[SBC] Если это SBC, вы можете узнать, что такое битпул. Для этого удалите Фильтр для btavdtp и найдите сообщение с протоколом SBC и нажмите на него. Ниже в разделе сведений разверните информацию о кодеке Bluetooth SBC. Затем разверните все (или все) данные фрейма. Там он должен четко показывать битпул, используемый этим кадром. Если это 35, есть большая вероятность, что ваша частота дискретизации составляет 44,1 кГц, вы используете Joint Stereo и используете аудио-профиль SBC среднего качества ( http://soundexpert.org/news/-/blogs/bluetooth-audio -качество-a2dp ). Скорость передачи для сжатого аудио составляет 229 кбит / с, что соответствует 4,68 в тестировании Sound Expert ( http://soundexpert.org/encoders-224-kbps ), что сравнимо с mp3 около 110-130 кбит / с.
[APT-X] Если это APT-X, то и ваш телефон, и приемник поддерживают APT-X, и именно это он и использует. Предполагая 16-битную частоту 44,1 кГц, кодек работает на скорости 352 кбит / с.
источник