Запись звонков Android с использованием ALSA/CAF

Я пишу небольшую библиотеку записи звонков для своего рутированного телефона.
Я видел в каком-то приложении, что запись выполняется через ALSA или CAF на рутированных телефонах.
Я не смог найти ни одного примера или руководства по использованию ALSA или CAF для записи звонков (или даже для записи звука для этого). вопрос).
Я видел проект библиотеки tinyAlsa, но не мог понять, как использовать его в приложении для Android. Может кто-нибудь показать мне учебник или пример кода о том, как интегрировать ALSA или CAF в приложение для Android?

Обновление Мне удалось обернуть tinyAlsa вызовами JNI. Однако вызовы типа mix_open(0) возвращают нулевые указатели, а вызовы типа pcm_open(...) возвращают указатель, но последующий вызов is_pcm_ready(pcm) всегда возвращает false.
Я делаю что-то не так? Я что-то пропустил?


person Oren    schedule 20.01.2015    source источник
comment
запись выполняется через ALSA или CAF на рутированных телефонах. С какой целью? Почему бы не использовать стандартные API аудиозаписи Android (MediaRecorder или AudioRecord)?   -  person Michael    schedule 20.01.2015
comment
Как для академических целей (получить больше знаний), так и для практических - использование стандартной записи вызовов API плохо работает на моем устройстве (nexus 5), которое, по-видимому, не поддерживает стандартный API.   -  person Oren    schedule 20.01.2015
comment
Я хотел бы добавить, что я ищу способ записи прямого системного звука, будь то ALSA / CAF или что-то еще, менее важно   -  person Oren    schedule 25.01.2015


Ответы (1)


  • Здесь' s, как создать библиотеку ALSA с помощью цепочки инструментов Android.
  • и здесь вы можете найти другой репозиторий, в котором упоминается ALSA для Android.

Я предлагаю вам прочитать этот пост, чтобы понять, каков ваш выбор и текущая ситуация с платформой.

ИЗМЕНИТЬ после комментариев:

Я думаю, что вам нужно реализовать свое решение с помощью tinyalsa, предполагая, что вы используете базовую реализацию ALSA. Если в крошечной версии чего-то не хватает, то вам может понадобиться спросить автора (но мне это кажется странным, потому что вы выполняете базовые операции). После прочтения этого сообщения мы может получить некоторые подсказки о том, зачем нужен root (доступ к защищенным точкам монтирования).

Держите нас в курсе ваших успехов, это интересная тема!

person bonnyz    schedule 28.01.2015
comment
Спасибо за подробности. На самом деле я сосредоточен на библиотеках tinyalsa/tinyalsa-ndk, и мне не хватает того, как использовать сгенерированный libtinyalsa.so, чтобы перенести его в мое приложение для Android (помимо собственных вызовов) для записи аудио - и, в частности, записи звонки. Я знаю основной поток - pcm-open, pcm-read цикла и pcm-close. то, что я пытаюсь понять, это, например, как получить действительные карты и устройства вместо 0,0 по умолчанию, а также — поскольку я планирую использовать его на рутированном телефоне — где в потоке необходим рут. Спасибо за помощь - person Oren; 28.01.2015
comment
Спасибо за ссылки, я все еще пытаюсь понять, как использовать tinyAlsa из кода Java для записи собственного звука (с упором на запись звонков) - person Oren; 01.02.2015
comment
Мне удалось обернуть tinyAlsa вызовами JNI. Однако вызовы типа mix_open(0) возвращают нулевые указатели, а вызовы типа pcm_open(...) возвращают указатель, но последующий вызов is_pcm_ready(pcm) всегда возвращает false. Я делаю что-то неправильно? Я что-то пропустил? - person Oren; 01.02.2015
comment
Ищешь такой же , но ничего полезного не нашел , ты закончил с этим ? - person user2028; 20.01.2017