Android: Помощь в компиляции SoundTouch lib в Android

Я пытаюсь скомпилироватьSoundTouch lib с Android NDK. Я получил инструкцию отВот скомпилировать эту библиотеку в Android.

Но когда я пытаюсь скомпилировать его сndk-build Команда покажет ошибки в различных исходных файлах SoundTouch lib примерно так:enter image description here

Я пытался отключить обработку исключений, как указано в инструкциях, но, похоже, это не работает.

Я скопировал все файлы из источника SoundTouch в папку JNI моего проекта. Вот мойandroid.mk файл :

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_CFLAGS :- -frtti -fexceptions

LOCAL_SRC_FILES := AAFilter.cpp BPMDetect.cpp cpu_detect_x86.cpp FIFOSampleBuffer.cpp FIRFilter.cpp main.cpp mmx_optimized.cpp PeakFinder.cpp RateTransposer.cpp RunParameters.cpp SoundTouch.cpp sse_optimized.cpp TDStretch.cpp WavFile.cpp

LOCAL_LDLIBS := -lpcap

LOCAL_MODULE := libSoundTouch

LOCAL_C_INCLUDES := BPMDetect.h FIFOSampleBuffer.h FIFOSamplePipe.h SoundTouch.h STTypes.h

include $(BUILD_SHARED_LIBRARY)

Может кто-нибудь, пожалуйста, помогите мне скомпилировать и использовать SoundTouch lib на Android?

UPDATE :

Я изменил свойandroid.mk файл, как показано ниже

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_CPP_FEATURES += -fno-exceptions

LOCAL_SRC_FILES := \
     SoundTouch/AAFilter.cpp \
     SoundTouch/BPMDetect.cpp \
     SoundTouch/cpu_detect_x86.cpp\
      SoundTouch/FIFOSampleBuffer.cpp \
      SoundTouch/FIRFilter.cpp \
      SoundTouch/mmx_optimized.cpp \
      SoundTouch/PeakFinder.cpp \
      SoundTouch/RateTransposer.cpp \
      SoundTouch/SoundTouch.cpp \
      SoundTouch/sse_optimized.cpp \
      SoundTouch/TDStretch.cpp 

LOCAL_MODULE := libSoundTouch

LOCAL_C_INCLUDES := include/BPMDetect.h include/FIFOSampleBuffer.h include/FIFOSamplePipe.h include/SoundTouch.h include/STTypes.h

include $(BUILD_SHARED_LIBRARY)

И теперь все работает нормально. Спасибо

 Mārtiņš Možeiko02 июл. 2012 г., 16:43
Чтобы включить исключения, вам нужно использовать & quot; LOCAL_CPP_FEATURES: = exceptions rtti & quot; в файле Android.mk. Какую первую ошибку вы получаете и по какой именно линии?
 Jagdeep Singh13 июн. 2013 г., 12:25
Эй, что ты сделал для создания этой библиотеки? Просто скопируйте Android.mk, Aplication.mk и soundtouch-jni.cpp в новый проект Android. и соберите его с помощью команды NDK-build ... Я выполняю следующие действия, но она выдает ошибку ... аналогично & quot;stackoverflow.com/questions/15662981/…& Quot;

Ответы на вопрос(2)

Решение Вопроса

android.mk файл :

вот мойandroid.mk файл

include $(CLEAR_VARS)
LOCAL_PATH:= $(call my-dir)

LOCAL_CPP_FEATURES += -fno-exceptions

LOCAL_SRC_FILES := \
     SoundTouch/AAFilter.cpp \
     SoundTouch/BPMDetect.cpp \
     SoundTouch/cpu_detect_x86.cpp\
      SoundTouch/FIFOSampleBuffer.cpp \
      SoundTouch/FIRFilter.cpp \
      SoundTouch/mmx_optimized.cpp \
      SoundTouch/PeakFinder.cpp \
      SoundTouch/RateTransposer.cpp \
      SoundTouch/SoundTouch.cpp \
      SoundTouch/sse_optimized.cpp \
      SoundTouch/TDStretch.cpp 

LOCAL_MODULE := libSoundTouch

LOCAL_C_INCLUDES := include/BPMDetect.h include/FIFOSampleBuffer.h include/FIFOSamplePipe.h include/SoundTouch.h include/STTypes.h

include $(BUILD_SHARED_LIBRARY)
 28 нояб. 2012 г., 07:42
Может ли кто-нибудь помочь с использованием этой библиотеки?
 18 окт. 2012 г., 19:23
Спасибо, что поделился. Компиляция работала нормально.

ЭТОТ Ссылка этого парня уже скомпилирована и готова к использованию SoundTouch Android-обертки.

Currently capable of time-stretching and pitch shifting. Currently only supports Androids with an FPU (armeabi-v7a).

Пример использования:

//There are currently 16 track id's you can use (0-15), each one has a separate SoundTouch processor.

    //Set your audio processing requirements: track id, channels, samplingRate, bytesPerSample, 
    //                              tempoChange (1.0 is normal speed), pitchChange (in semi-tones)

    SoundTouch soundTouch = new SoundTouch(0, 2, 44100, 2, 1.0f, 2.0f);

    //byte[] sizes are recommended to be 8192 bytes.

    //put a byte[] of PCM audio in the sound processor:
    soundTouch.putBytes(input);

    //write output to a byte[]:
    int bytesReceived = soundTouch.getBytes(output);

    //after you write the last byte[], call finish().
    soundTouch.finish();

    //now get the remaining bytes from the sound processor.
    int bytesReceived = 0;
    do
    {
        bytesReceived = soundTouch.getBytes(output);
        //do stuff with output.
    } while (bytesReceived != 0)

    //if you stop playing, call clear on the track to clear the pipeline for later use.
    soundTouch.clearBuffer()

Visit above github link for more details.

 16 авг. 2016 г., 14:20
Парень переместил кодовую базу в новый репозиторий на github. Я обновил ссылку.NEW LINK IS THIS
 16 авг. 2016 г., 02:20
ссылка не работает показывая 404

Ваш ответ на вопрос