<Excerpt in index | 首页摘要>
AndroidStudio利用ndk-build编译fmod
<The rest of contents | 余下全文>
前提
fmod是一款声音方面的c层Library
最开始本来想利用cmake来调用的,后来发现坑太多。
还是老的ndk-build方式更好用。
ndk-build 加入环境变量这个环境我不讲了。
正戏
首先,下载fmod的android版本。
去fmod官网下载
然后创建一个项目。
包名要用 “org.fmod.example” 因为他的demo里面用的这个 如果用自己的 你需要去重新生成头文件 挺麻烦的 干脆就用他的好了。
不要选中! include C++ support
首先在你的项目的gradle.properties文件中加入
1 | android.useDeprecatedNdk=true |
然后打开下载好的fmod文件的 api->lowlevel->examples->java->org->fmod->example 把里面的MainActivity 替换到你项目里面
找到api->lowlevel->lib->fmod.jar 放入你的libs目录中去 同步一下
在你的model(一般是app)上右键->new->Folder->JniFolder finish
在你的main目录下生成了jni目录
将 fmod 的 api->lowlevel->inc 整个目录里面的所有内容拷贝至jni目录下
将 fmod 的 api->lowlevel->examples下的
common.cpp common.h common_platform.cpp common_platform.h play_sound.cpp 这几个文件也拷贝至jni目录下
这几个文件实现了一个简单的声音播放功能,用来当做示例.
继续找到 api->lowlevel->lib->armeabi 下的两个so也拷贝至jni目录
在jni目录下创建Android.mk文件
内容如下:
1 | LOCAL_PATH := $(call my-dir) |
创建Application.mk文件
1 | APP_ABI := armeabi |
然后打开terminal窗口 进入到 modelName(app)/src/main/java目录下
输入 ndk-build
然后在main目录下创建jniLibs目录,讲main/libs目录下的文件拷贝至jniLbis目录下
打开MainActivity
拉到最底下 static代码块中内容全部注释
然后里面加入
1 | System.loadLibrary("playsound"); |
然后打开app里面的build.gradle文件
在android节点下加入
1 | sourceSets.main { |
然后在main目录下创建assets目录
然后在fmod的api->lowlevel->examples->media 目录下
找到 drumloop.wav jaguar.wav swish.wav 拷贝至assets目录下
然后就可以运行你的app啦!