i. 集成baiduTTS语音合成到项目中
- 直接导入deme,得int result = mSpeechSynthesizer.speak(TEXT);返回0却无声音
//java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String com.baidu.tts.jni.Embed
//{"err_msg":"http method not support","err_no":-1001,"expires":0,"time":1595228206}
解:使用第三方框架,导入了一些库还有c c++ 打包的So文件,也就是每个库的libs文件不一致
导入了所有so文件
注:so文件含义
armeabiv-v7a: 第7代及以上的ARM处理器;
arm64-v8a: 第8代、64位ARM处理器;
armeabi: 第5代、第6代的ARM处理器;
mips:一种RISC处理器。
mips64:64位的。
x86: 平板;
x86_64:64位的平板。
————————————————
//错误发生:(-102)offline engine download license failure[(-1004)appCode=21367997-- //licensePath=/data/user/0/net.linovel.keiko/files/baidu_tts_license]
//java.lang.reflect.UndeclaredThrowableException
//{"err_detail":"Params is empty.","err_msg":"parameter error.","err_no":501,"err_subcode":1,"tts_logid":3005497846}
在线语音合成初始化成功,离线语音合成初始化失败
//{"err_msg":"http method not support","err_no":-1001,"expires":0,"time":1595243795} maybe网络差
/晕/
/尝试转换思路,不死磕报错/
—>移除离线语音初始化部分
ii.仿制NonBlockSyntherizer类改写
- volatile
@SuppressLint("HandlerLeak")
//该方法一定在新线程中调用
iii.复制文件
- 应用Gradle中的复制文件—>gradle似乎只能在项目目录内改变文件位置?
//key
byte[] buffer = new byte[1024];
int byteRead;
while (-1 != (byteRead = fileInputStream.read(buffer))) {
fileOutputStream.write(buffer, 0, byteRead);
}
fileOutputStream.flush();
网友评论