我需要改变音频的音高和时间。为此,我使用prebuild静态库。目前我有libZtxAndroid.a静态库和相应的头文件,其中包含函数声明。但我不知道如何在我的android studio应用程序中加载这个库,并从java代码调用本机函数。我探索了许多链接并试图加载这个库。但所有尝试都失败了。这是我上次尝试的一个链接https://tariqzubairy.wordpress.com/2012/03/12/use-of-prebuild-static-library-compiled-with-android-toolchain/
此外,我在此应用程序中使用FFMPEG共享库和MP4Parser(https://github.com/sannies/mp4parser)库,分别为视频和合并音频添加水印。任何人都可以从基础知识中获得帮助。
答案 0 :(得分:1)
你需要做几件事:
如果你在android中有这样的东西:
Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv * env, jobject thiz)
其中Java_comp_example_hellojni_HelloJni是您的项目名称,您必须从Java开始,假设您的lib的名称是libmylib.so:
public class HelloJni {
static {
System.LoadLibrary('mylib');
}
public native stringFromJni();
}
请注意,本机库名称不需要lib前缀和.so后缀。另请注意,您不需要C ++中的任何头文件,只需从Java加载库并声明本机函数即可。在Java项目使用之前,库应该已经编译并在正确的目录中。
加载时要小心:如果使用标准库的共享版本,则还需要将其添加到静态{Java部分,以便在库之前加载它。