07-20一周傻问题合集

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]

\color{grey}{—>更换公司账号}
//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网络差
//
/尝试转换思路,不死磕报错/

—>移除离线语音初始化部分
\color{red}结果是 mSpeechSynthesizer.setAudioStreamType(AudioManager.MODE_IN_CALL); 音频输出参数未设定导致的

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();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。