flutter项目使用fmod库进行变音开发

调用图

在这里插入图片描述
说明:flutter通过MethonChannel方式调用android原生接口,借助android的jni开发能力调用fmod库

准备工作
  1. 下载FMOD库
    FMOD官网
    在这里插入图片描述
    在这里插入图片描述
    选择Android支持库下载,解压下载好的压缩文件, api/core/inc目录和api/core/lib目录下的文件就是之后项目中需要用到的c++的头文件和.so库,api/core/lib目录下包含了适用于不同ABI的.so文件

  2. Android Studio安装插件
    在这里插入图片描述

在这里插入图片描述

这里有一个需要注意的点,勾选Show Package Details查看NDK下具体安装了那些版本的NDK,上图中是我所下载并安装的NDK的版本,我曾经尝试将所有版本的NDK都勾选,然后下载并安装所有版本的NDK,再运行程序,会报错,错误的内容是FMOD头文件中定义的一些属性跟全局定义的属性冲突了,我猜测是因为FMOD头文件中的一些属性,跟某个版本的NDK中的属性有冲突,所以如果出现定义冲突的问题,可以尝试更换NDK的版本来解决

配置SO库
  1. 在android/app目录下创建CMakeList.txt文件(该文件的配置说明将在之后说明)
  2. 在android/app目录下创建libs目录,将api/core/lib目录下的fmod.jar文件拷贝到libs目录下
  3. 在android/app/src/main目录下分别创建cpp、jniLibs目录。注意:jniLibs目录名称一定不能写错,jniLIbs也必须创建在android/app/src/main目录下,在打包APK的时候,默认会将jniLibs目录下的so文件打包到APK中,如果该文件夹名称错误,就会导致APP运行的时候找不到动态运行库(.so文件)
  4. 在cpp目录下创建include目录,将fmod的api/core/inc目录下的文件拷贝到include目录中
  5. 在cpp目录下创建native-lib.cpp文件(之后会详细说明该文件的用途)

到这里,所有需要创建目录和文件,以及需要拷贝到项目中的文件都已经准备好,下面开始进行配置

  1. 配置build.gradle(Module:android.app)文件
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210528162932361.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2oyZWVzeQ==,size_16,color_FFFFFF,t_70
    在这里插入图片描述

    分别添加三处externalNativeBuild配置,在defaultConfig外面的是用来指定CMakeLists文件的路径,defaultConfig内部的是在执行CMake时的命令行参数,buildTypes内部的参数用来指定是用libfmod.so还是用libfmodL.so,fmod提供了调试环境和正式环境下对应的不同so文件

  2. dependencies增加依赖
    在这里插入图片描述

  3. CMakeList.txt配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值