Реализовать пользовательский libaudio.so для Android или "как аудио работает на Android?"
Сейчас я обнаруживаю Android >4.0 и у меня есть несколько вопросов, которые я не могу понять сам, может быть, вы мне поможете.
Я обнаружил, что некоторые маркет-приложения, такие как "AlsaMixer" или "MixGet with ALSA", помещают библиотеку "libaudio.so" в "/system/lib/" (с помощью пользователя).
Я задавался вопросом, что происходит, и после некоторого времени поиска кажется, что каждая Android-компания может создать libaudio.so, который реализовал определенный C++-интерфейс и поместил его на этот путь.
Android тогда берет эту библиотеку для обработки аудио (существуют реализации для ALSA, TinyALSA и других)?
Но: На моем телефоне нет такого libaudio.so - как это работает? Что принято иначе? Я обнаружил, что у меня есть "libasound.so" в этом каталоге, это по умолчанию?
Если я попытаюсь реализовать свой собственный libaudio.so (с моими небольшими знаниями в данный момент), могу ли я ссылаться на библиотеку по умолчанию в ней?
Я думаю, "эй, есть работающая аудио-реализация на каждом телефоне в мире, и я просто хочу расширить его, а не заново проектировать (переконфигурировать) колесо?"
Я имею в виду:
AudioFlinger -> мой пользовательский libaudio.so -> библиотека по умолчанию (libasound.so?) -> колонки
А что, если на моем телефоне уже есть libaudio.so?
Я был бы очень благодарен за каждый полезный ответ. Может, у меня есть адрес для меня, понятный для начинающего?
Заранее спасибо и всего наилучшего!
1 ответ
Теперь я нашел хорошую и понятную графику с великолепными описаниями, например, как звук передается через Android:
Сервисы Android Black Magic - Маракана (стр. 10+11)
Но также большое спасибо t0mm13b, который помешал мне пойти по неправильному пути с libaudio.so.