Я работаю над приложением для Android для изменения высоты тона и столкнулся с некоторыми проблемами. Сначала я пробовал использовать Superpowered, но столкнулся с проблемами искажения звука при изменении высоты тона. Теперь я пытаюсь создать и использовать библиотеку Rubber Band для Android. Однако предоставленные примеры довольно устарели, и я также без особого успеха исследовал другие сторонние примеры с открытым исходным кодом — они либо не поддерживаются, либо основаны на очень старом коде.
Я новичок в работе с собственным кодом в Android, поэтому могу упустить что-то фундаментальное. Может ли кто-нибудь объяснить мне, как шаг за шагом интегрировать библиотеку Rubber Band в мое приложение для Android?
Вот ссылка на библиотеку Rubber Band, которую я пытаюсь создать: Ссылка на Github.
Я попытался собрать файл .mk с помощью команды ndk-build, но, поскольку ссылка сильно устарела, я обнаружил множество ошибок. Кроме того, с тех пор библиотека Rubber Band претерпела множество обновлений, что может способствовать возникновению проблем.
Вот файл android.mk, который я использую.
LOCAL_PATH := $(call my-dir)/..
LOCAL_MODULE := rubberband
LOCAL_MODULE_FILENAME := librubberband-jni
RUBBERBAND_PATH := $(LOCAL_PATH)
RUBBERBAND_SRC_PATH := $(RUBBERBAND_PATH)/src
LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/src
LOCAL_CFLAGS := \
-Wall \
-I$(RUBBERBAND_PATH) \
-I$(RUBBERBAND_SRC_PATH) \
-DUSE_SPEEX \
-DUSE_KISSFFT \
-DPROCESS_SAMPLE_TYPE=float \
-DLACK_POSIX_MEMALIGN \
-DUSE_OWN_ALIGNED_MALLOC \
-DLACK_SINCOS \
-DNO_EXCEPTIONS \
-DNO_THREADING \
-DNO_THREAD_CHECKS
RUBBERBAND_JNI_FILES := \
$(RUBBERBAND_SRC_PATH)/jni/RubberBandStretcherJNI.cpp
RUBBERBAND_SRC_FILES := \
$(RUBBERBAND_SRC_PATH)/base/Profiler.cpp \
$(RUBBERBAND_SRC_PATH)/system/Thread.cpp \
$(RUBBERBAND_SRC_PATH)/system/Allocators.cpp \
$(RUBBERBAND_SRC_PATH)/system/sysutils.cpp \
$(RUBBERBAND_SRC_PATH)/system/VectorOpsComplex.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherChannelData.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/AudioCurveCalculator.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/FFT.cpp \
$(RUBBERBAND_SRC_PATH)/dsp/Resampler.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/SilentAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/CompoundAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/HighFrequencyAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/SpectralDifferenceAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/ConstantAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/audiocurves/PercussiveAudioCurve.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherImpl.cpp \
$(RUBBERBAND_SRC_PATH)/StretcherProcess.cpp \
$(RUBBERBAND_SRC_PATH)/StretchCalculator.cpp \
$(RUBBERBAND_SRC_PATH)/RubberBandStretcher.cpp \
$(RUBBERBAND_SRC_PATH)/speex/resample.c
LOCAL_SRC_FILES += \
$(RUBBERBAND_JNI_FILES) \
$(RUBBERBAND_SRC_FILES)
LOCAL_SRC_FILES += \
$(RUBBERBAND_SRC_PATH)/kissfft/kiss_fft.c \
$(RUBBERBAND_SRC_PATH)/kissfft/kiss_fftr.c
ifeq ($(TARGET_ARCH_ABI), x86_64)
LOCAL_CFLAGS += \
-O3 \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
endif
ifeq ($(TARGET_ARCH_ABI), arm64-v8a)
LOCAL_CFLAGS += \
-O3 \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
endif
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_CFLAGS += \
-O3 \
-mfpu=neon \
-mfloat-abi=softfp \
-ffast-math \
-ftree-vectorize \
-freciprocal-math \
-fsingle-precision-constant \
-D__ARM_ARCH_7__ \
-DARM_RUNFAST \
-DUSE_POMMIER_MATHFUN \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
LOCAL_ARM_MODE := arm
LOCAL_ARM_NEON := true
endif
ifeq ($(TARGET_ARCH_ABI), armeabi)
LOCAL_CFLAGS += \
-O3 \
-DNO_TIMING \
-DNO_TIMING_COMPLETE_NOOP
LOCAL_ARM_MODE := arm
LOCAL_ARM_NEON := false
endif
LOCAL_LDLIBS += -llog
include $(BUILD_SHARED_LIBRARY)
Подробнее здесь: https://stackoverflow.com/questions/788 ... nd-library
Как реализовать сдвиг высоты звука в Android с помощью библиотеки Rubber Band? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
JasperReports не заполняет данные от jrbeancollectiondatasource в The Detail Band
Anonymous » » в форуме Javascript - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Могу ли я исправить совокупный сдвиг макета, не зная ширины и высоты изображения?
Anonymous » » в форуме Html - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-