Я исследую интересный проект, включающий микширование потокового аудио через Bluetooth для смартфонов, начиная с Android, так как это то, с чем у меня больше всего опыта. Я работал с Bluetooth на Android один или два раза и по своему опыту узнал, что предварительный сотовый API не позволяет приложениям подключаться к приемникам звука A2DP или HFP. Я уже пробовал это на Ginger Bread на HTC EVO, используя необходимый UUID безрезультатно.
Согласно официальной документации, по состоянию на API LEVEL 11 это теперь возможно, но я уверен, что единственными устройствами, которые будут предлагать этот уровень API, будут устройства Ice Cream Sandwich позже, так как поддержка началась только в Honey Comb. Я абсолютный любитель, поэтому вряд ли я получу свои перчатки на устройстве Ice Cream Sandwich для разработчиков. Адаптация любого кода для более поздних ревизий не будет проблемой, так как я просто пытаюсь доказать концепцию прямо сейчас.
В идеале я хотел бы использовать потоки ввода / вывода сопряженного устройства A2DP для непосредственного чтения и записи данных PCM. Однако, если я хочу сделать это сейчас, мне, скорее всего, придется использовать обходной путь.
Моя идея состоит в том, чтобы использовать классы AudioRecord и AudioTrack для Android, которые, в соответствии с моим пониманием, считывают аудиовход с микрофона и выводят аудиосигнал на динамик. Теперь в обоих случаях, когда устройство A2DP не подключено, эти структуры будут использовать микрофон и динамик устройства соответственно. Однако, когда подключено устройство A2DP или HFP, я не знаю, настроит ли система теперь эти структуры соответствующим входом и выходом на микрофон и динамик гарнитуры. Если так, то я мог бы эффективно встроить это в свой код и позже адаптировать его, чтобы воспользоваться прямой поддержкой Ice Cream Sandwich.
Кто-нибудь с относительно большим опытом в этой области считает, что этот подход будет работать? Я предпочел бы знать, если кто-нибудь добился успеха, прежде чем я сижу и пишу код, который потенциально может быть пустой тратой времени.