关于第三方 SDK 的引入,很多情况下直接查看官方文档就够了,之前的我也一直这样认为,直到遇到了科大讯飞的语音合成。其实他和其他第三方 SDK 的引入没有太大的区别,唯一的一点不同或许就是需要引入 .so 文件,这个 .so 文件正是坑所在。既然都说了,那就顺便把语音合成这部分也说一下吧。
在语音合成这方面,据我所知科大讯飞算是做得很不错的了,要用到人家的 SDK 那注册个账号是少不了的了。这部分就省略了,直接注册登录,然后创建应用,这时会给你个 appID ,嗯,还要绑定手机号和微信号(这点略坑)。都弄好后就下载 SDK ,解压出来是这样的:
1、包的导入(包括 .so 文件)
直接把 SDK 中 lib 文件夹下的 所有文件 复制到 Android 工程下的 lib 目录下(如果 Android 工程下面没有 lib文件夹 ,就自己新建一个 lib 文件夹),为什么要复制所有呢?这里有个坑,一开始按照官方 SDK 只复制了 armeabi、armeabi-v7a、mips 这三个文件夹,但是在一切都弄好准备测试是一直报“引擎不支持(21002)”,我以为是 .so 文件引入失败,花了好一会功夫才搞清楚原来要导入所有文件,这是 lib 下的所有文件:
我的 Android 工程目录
这里有一点要注意,导入的 jar 包还需对它右键 -> Add As Library
jar 包是引入了,那 .so 文件呢?接下来才是精华所在
2、.so 文件的引入
2.1、添加引入语句
刚刚已经把 .so 文件都复制到 Android 工程的 lib 目录下了,但是还不够。打开 module 的 build.gradle 文件,在里面的 android 标签下添加一句 sourceSets.main.jniLibs.srcDirs = [‘libs’]
我的整个 build.gradle 文件是这样的:
apply plugin: 'com.android.applicati