- Профиль A2DP в телефоне: что это такое и как его активировать
- Что такое профиль A2DP
- Особенности функционирования
- Где используется
- Как правильно подключить
- Android device as a receiver for A2DP profile
- 3 Answers 3
- Профиль A2DP в смартфоне, наушниках и магнитоле: что это такое, как включить
- Как включить A2DP
- Особенности А2DP
Профиль A2DP в телефоне: что это такое и как его активировать
Стандарт беспроводной передачи данных между устройствами Bluetooth, несмотря на небольшой радиус действия, пользуется популярностью по всему миру и активно применяется для решения многих задач. Удобство использования интерфейса Bluetooth в смартфонах, компьютерах и прочих цифровых устройствах обеспечило динамичное развитие и продвижение технологии. Многие производители телефонов даже лишают свои девайсы 3,5-миллиметрового разъёма под наушники, приучая пользователей прослушиванию аудио без проводов. Современные смартфоны поддерживают стандарт A2DP Bluetooth, который даёт возможность использования беспроводных наушников или колонок.
Как использовать A2DP профиль в телефоне.
Что такое профиль A2DP
Функционал телефонов с каждым годом расширяется, в результате чего мобильное устройство кроме основной своей задачи давно уже способно выполнять множество других. Обнаружив в смартфоне профиль A2DP, некоторые пользователи задаются вопросом, что это такое. Именно эту тему мы и раскроем. Профиль Bluetooth A2DP (Advanced Audio Distribution Profile) является расширенным протоколом беспроводного распространения аудио между устройствами. Передача стереозвука осуществляется по каналу Bluetooth в режиме реального времени. Устройства, поддерживающие A2DP, можно разделить на два типа:
- Передатчик, в качестве которого может выступать смартфон, планшет, приставка Smart-TV, КПК или другой девайс. В данном случае задача устройства заключается в передаче аудио.
- Приёмник (наушники, портативная колонка, автомагнитола и пр.), то есть устройство, принимающее аудио сигнал.
Реализация технологии позволяет передавать по беспроводной связи Bluetooth высококачественные аудиофайлы различных форматов. Передача двухканального сигнала аудио по Bluetooth в исходном варианте без сжатия невозможна ввиду ограничений пропускной способности данной спецификации беспроводных персональных сетей, поэтому цифровой поток обрабатывается перед отправкой на принимающее устройство. В A2DP профиле для сжатия используются различные кодеки, сжимающие контент аудио до размеров канала Bluetooth, качество звука при этом остаётся на высоком уровне, что обусловлено применяемыми алгоритмами. Сжатие в случае с A2DP выполняется с минимальными потерями качества, что означает получение приёмником стереозвука с качественным битрейтом.
Особенности функционирования
Задействование соединения Bluetooth обеспечивается профилями, которые поддерживает устройство, их наличием и определяются функциональные возможности, а также спектр оборудования, с коим возможно взаимодействие. Нередко в связке с A2DP поддерживается и профиль AVRCP, обеспечивающий устройству управление функционалом телевизора, системы домашнего кинотеатра, автомагнитолы и т. д., то есть выполнение функций пульта дистанционного управления. Просто обеспечить связь по каналу недостаточно, для выполнения необходимых задач и источник сигнала, и приёмник должны обладать поддержкой одних и тех же профилей. Их реализация зависит от конструктивных особенностей аппаратного обеспечения, специфики, а также политики производителя.
Поддержка профиля A2DP предполагает передачу стереофонического потока аудио от источника сигнала к беспроводной гарнитуре или прочим устройствам воспроизведения звука и, как было сказано выше, небольшие потери качества при этом неизбежны из-за особенностей технологии Bluetooth. Чаще всего сжатие передаваемого потока осуществляется с применением стандартного кодека SBC или другого, например, MP3, AAC и пр. Так, взаимодействующие устройства согласуют кодек, которым будет обрабатываться сигнал (оба должны поддерживать один и тот же) и параметры кодирования (битрейт, частота дискретизации). Отметим, что в случае использования SBC качество звука будет ниже, чем при кодировании с помощью MP3 со стандартными настройками.
Технология обеспечивает передачу данных в пределах около 10 метров, на более дальнем расстоянии сигнал будет прерываться, возникнут помехи. При этом следует учитывать и наличие препятствий в виде стен, перегородок и пр., так что для стабильности соединения взаимодействующие устройства должны находиться поближе друг к другу. На сегодняшний день технология A2DP значительно уступает по качеству передаваемого аудио более современным, усовершенствованным стандартам AptX и AptX HD, обеспечивающим передачу звука почти без потерь.
Где используется
Технология широко используется и профиль A2DP можно встретить в самых разных устройствах, таких как смартфоны, планшеты, КПК, ноутбуки, колонки, гарнитуры, беспроводные наушники, акустические системы, Smart TV и прочие девайсы с поддержкой Bluetooth. Вы сможете подключить телефон к магнитоле или любым другому цифровому оборудования при наличии A2DP среди их характеристик, а также управлять воспроизведением. Стандарт поддерживает операционные системы Windows, Linux, Mac OS X и мобильные ОС Android, iOS, Windows Phone, BlackBerry. Возможность передачи аудио требует синхронизации устройств, для чего нужно включить A2DP Bluetooth на девайсе и выбрать приёмник, как это осуществить рассмотрим ниже на примере Android. Совместимость оборудования с технологией A2DP позволяет соединять девайсы независимо от их модели и производителя, что очень удобно.
Как правильно подключить
Для применения стандарта связи A2DP необходимо активировать соответствующую функцию в настройках поддерживающего девайса. Например, на смартфонах под управлением Android потребуется включить Bluetooth. Сделать это можно, обратившись к настройкам (опция доступна в блоке «Беспроводные сети») или из шторки уведомлений, открывающейся с рабочего стола, что будет ещё быстрее. Если профиль A2DP поддерживается смартфоном, то будет активирован, при этом в настройке он не нуждается. Далее потребуется включить наушники, которые должны быть заряжены.
Смартфон обнаружит устройство и его необходимо выбрать из списка доступных для соединения по Bluetooth устройств, за этими действиями последует синхронизация. Чтобы пользоваться благами современных технологий передачи аудио A2DP Bluetooth, пользователю не нужно ничего дополнительно настраивать, функция доступна сразу же после активации при условии поддержки стандарта связи обоими устройствами.
Android device as a receiver for A2DP profile
Basically, what I am trying to do right now is use an android device as an A2DP receiver and when pairing established, android plays sound that is received from a transmitter. I am worrying that if I use STP profile, it may cause delay of streaming. So, I want to use A2DP but is this possible to use an android device as a receiver of A2DP? and how to do it?
3 Answers 3
Since Android L the BlueDriod stack does support A2DP sink, but it is disabled by default.
To enable it do the following:
/* Enable bluetooth av sink. */ #define BTA_AV_SINK_INCLUDED TRUE
in /external/bluetooth/bluedroid/include/bt_target.h. This enables sink support in the bluetooth stack.
Also you have to do this change:
Now you can pair your devices and start streaming. Unfortunately you will hear no sound although you’ll receive the packets. The reason is that there is no audio route for A2DP sink. In the commit message of this patch https://android-review.googlesource.com/#/c/98161/ you can find a sample implementation on how to fix this.
Here is a list of these changes:
@nilo patch you posted is for android android-4.4_r1 , in android L base classes (to which against patch is) is different. Ex : in file platform/external/bluetooth/bluedroid / audio_a2dp_hw/audio_a2dp_hw.c there is already struct a2dp_stream_in *input; audio_a2dp_hw.c line 87
This is also valid for the esp-idf for ESP32 IC though I dont know if the sink functionality is implemented in the higher layers of the stack.
Yes. It is possible. I have done it in JB. Android internally uses «Bluedroid» stack from Broadcomm for Bluetooth. Previously this stack did not have support for A2DP Sink Role (Which you mentioned as receiver). From Lollipop release, the A2DP Sink role profile has been added in Bluedroid. But, it is not enabled to be used by framework/upper layer (Application). You need to make changes in framework to enable it or ‘use’ it. You may refer to the following files and relevant files in Android source code to enable it.
audio.h - put a new audio source audio_policy.conf - put a new input source for a2dp 'inputs' AudioManager.java AudioPolicyManagerBase.cpp AudioService.java AudioSystem.java BluetoothA2dp.java MediaRecorder.java A2DPStateMachine.java
etc. and implement it (this file list is not comprehensive, but you can figure it out if you have experience in relevant field). When any stream connection is established, you will get callback in a2dp state machine and from there you have to start a thread to read the decoded PCM bytes from the ‘new’ audio source and send it to your media player. SBC codec to PCM decoding will be done at the ‘bluedroid’ sbc decoder layer.
Build it and flash it to your phone and enjoy music.
EDIT: Also, you may have make changes in A2DP SDP record in Bluedroid stack to advertise the A2DP Sink role.
Профиль A2DP в смартфоне, наушниках и магнитоле: что это такое, как включить
А2DP – это расширенный протокол, который обеспечивает беспроводную передачу стереозвука между устройствами (колонок, наушников, магнитол) через канал Вluetooth в режиме настоящего времени.
Приборы с поддержкой A2DP разделяются на 2 класса:
- передатчик (мобильные телефоны, приставка Smart-TV или устройство, которое осуществляет аудио-звук);
- приемник (радионаушники, магнитола, портативные колонки).
Основная задача A2DP профиля – это сжать звук с помощью кодеков и сделать его поддерживающим к параметрам Bluetooth-канала, позволяя сохранить высокое качество аудио благодаря современным технологиям.
Как включить A2DP
Стандартные настройки поддерживаются всеми универсальными ОС, начиная от Windows до мобильного Андроида.
Совместимые оборудования можно синхронизовать вне зависимости от марки и модели. Для того чтобы воспользоваться связью А2DP, необходимо активировать опцию в настройках поддерживающего интерфейса. На смартфонах с операционной системой Аndroid включается Вluetooth.
Выполнить это действие можно при помощи настроек (функция находится в разделе «Беспроводные сети»). При условии, если А2DP установлен на смартфоне под ОС Аndroid, активация выполняется без дополнительных настроек. Далее с помощью опций выбираются заряженные наушники и подключаются к устройству. При поиске Bluetooth смартфон находит из списка нужное устройство, подключает и выполняет синхронизацию.
Для передачи аудио А2DP через Блютус пользователю не нужно выполнять дополнительные настройки, поскольку опция доступна после активации при поддержании общей связи обоими устройствами.
Особенности А2DP
Для сжатия звука применяются стандартные кодеки MP3 и SBC. На синхронизованных и взаимосвязанных устройствах производится кодировка для обработки аудиосигнала. Причем они должны быть настроены одинаково.
Стоит отметить, что кодировка по формату MP3 будет высококачественной по сравнению с обработкой на кодеке SBC. При отсутствии препятствий сигнал передается в пределах 8-10 м. А при большей дистанции могут наблюдаться помехи, которые влияют на передачу звука. Устойчивое соединение создается тогда, когда синхронизованные устройства находятся на близком расстоянии друг от друга.
Однако совместно с А2DP поддерживается и профиль AVRCP, с помощью которого можно управлять системой домашнего кинотеатра или магнитолы, поскольку он выполняет функцию дистанционного пульта.
Элементарно поддерживать связь по каналу недостаточно, необходим источник сигнала, и приемник должен соединять одни и те же профили. Их доступность зависит от уникальных свойств не только программы, но и от принципа работы и политики производителя.