2013-08-23 2 views
2

Я пишу приложение, которое должно использовать функции от tinyalsa через ndk, я просто хочу вызывать функции, определенные tinyalsa как pcm_open(), из моих собственных реализаций функций.Использование tinyalsa от ndk

Я пробовал следовать документации по использованию предварительно созданных библиотек в Android/ndk/docs/PREBUILTS.html, но я не могу заставить ее работать.

Не могли бы вы рассказать, как я мог это сделать?

Благодаря

+0

Можете ли вы дать подробную информацию о том, что вы пробовали? Вы можете показать свой файл Android.mk? – krsteeve

+0

Я мог бы это сделать и отправил ответ, спасибо за вашу помощь. – 1087427

ответ

4

Я мог бы это сделать, процесс следующий:

  1. Копии tinyalsa.so в ~/Android/NDK/платформы/андроид-18/арка рука/USR/Lib

  2. Копия asoundlib.h в ~/Android/NDK/платформы/андроид-18/арка рука/USR/включать

    Platform-18 является один я использую. Он может быть указан в Application.mk с линией

    APP_PLATFORM := android-18 
    
  3. После добавления его в НДК платформы включить его в файл, где нативные функции реализуются

    #include <asoundlib.h> 
    
  4. Расскажите компилятор что нам понадобится эта библиотека. В Android.mk

    LOCAL_LDLIBS := -ltinyalsa 
    

Это работало для меня :)

+0

'LOCAL_SHARED_LIBRARIES: = tinyalsa' работает для меня, чем' LOCAL_LDLIBS' – kangear

+0

Вы уверены, что это будет работать на всех устройствах? Согласно https://source.android.com/devices/audio/ на уровне ядра вместо 'ALSA' можно использовать' OSS' или настраиваемый модуль – CAMOBAP

+0

Где вы можете получить файл 'tinyalsa.so'? (Я знаю, что мне нужно скомпилировать его, загрузив исходный код, но не будет ли создаваться файл '.so' для архитектуры x86, тогда как мое устройство Android работает на ARM?) – JellicleCat

Смежные вопросы