Android:帮助在Android中编译SoundTouch库
我正在尝试用androidndk编译lib。我从中得到了一些在android中编译这个库的指令 但当我尝试使用Android:帮助在Android中编译SoundTouch库,android,c++,android-ndk,Android,C++,Android Ndk,我正在尝试用androidndk编译lib。我从中得到了一些在android中编译这个库的指令 但当我尝试使用ndk build命令编译它时,它会在SoundTouch lib的各种源文件中显示错误,如下所示: 我试图按照说明中所述关闭异常处理,但似乎不起作用 我将所有文件从SoundTouch source复制到我项目的JNI文件夹中。这是我的android.mk文件: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_CFLAG
ndk build
命令编译它时,它会在SoundTouch lib的各种源文件中显示错误,如下所示:
我试图按照说明中所述关闭异常处理,但似乎不起作用
我将所有文件从SoundTouch source复制到我项目的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)
有人能帮我在android上编译和使用SoundTouch库吗
更新:
我更改了我的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)
现在一切正常。谢谢我已通过更改我的
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)
我已通过更改我的
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)
检查链接这家伙已经编译准备使用SoundTouch Android包装
- 目前能够进行时间拉伸和音高变换
- 目前仅支持带有FPU(armeabi-v7a)的Androids
//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()
有关更多详细信息,请访问以上github链接。
检查链接这家伙已经编译准备使用SoundTouch Android包装
- 目前能够进行时间拉伸和音高变换
- 目前仅支持带有FPU(armeabi-v7a)的Androids
//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()
有关更多详细信息,请访问以上github链接。
要启用异常,您需要在Android.mk文件中使用“LOCAL_CPP_FEATURES:=exceptions rtti”。您遇到的第一个错误是什么?具体是在哪一行?嘿,您为构建此库做了哪些工作??只需在新的Android项目中复制Android.mk、Aplication.mk和soundtouch-jni.cpp。并通过NDK build命令构建它…我正在执行这些步骤,但它给了我错误..类似于“”要启用异常,您需要在Android.mk文件中使用“LOCAL_CPP_FEATURES:=exceptions rtti”。您遇到的第一个错误是什么?具体是在哪一行?嘿,您为构建此库做了哪些工作??只需在新的Android项目中复制Android.mk、Aplication.mk和soundtouch-jni.cpp。并通过NDK build命令构建它…我正在遵循这些步骤,但它给了我错误..类似于“”有人可以帮助使用此库吗?有人可以帮助使用此库吗?这家伙已将代码库移动到github上的新repo我已更新链接。这家伙已经将代码库移动到github上的新repo,我已经更新了链接。