讯飞语音SpeechUtility.createUtility阻塞当前进程

在使用讯飞语音SDK时遇到平板上App重新打开显示白屏的问题,原因是主线程在初始化SDK时被阻塞。排除了SDK自身bug后,尝试更新库和资源,但问题依然存在。进一步排查发现退出程序时SDK资源未完全销毁,尝试在VoiceManager的destroy()中销毁,但发现退出时onDestroy()未被调用。解决方案是调整应用程序的退出方式。
摘要由CSDN通过智能技术生成

 

今天在使用讯飞语音的SDK的时候,发现在平板上退出App重新打开App显示白屏,而在手机上面一切正常!经过层层调试,发现在Application中对SDK初始化的时候,主线程阻塞在了以下语句中:

SpeechUtility.createUtility(appContext, param.toString());

不应该呀,难道是*.so文件的原因?或者是SDK自带的bug???经验证,使用SDK DEMO是可以正常操作的,这就排除了SDK自带的bug,怀疑有可能是工程中的库跟demo中的库不完全一直所致,干脆就将demo中所有的库以及assert都拷贝到项目中,问题依旧!

于是怀疑退出程序的时候,SDK资源没有完全销毁掉,导致重新进入程序的时候出现问题,我在VoiceManager的destroy()函数中进行如下操作:

    @Override
    public void destroy() {
        stop();
        cancel();
        if (null != mTts) {
            mTts.stopSpeaking();
            // 退出时释放连接
            mTts.destroy();
            mTts = null;
        }
        if (null != mIat) {
            mIat.stopListening();
            mIat.destroy();
            mIat = null;
        }
        Logger.e(this,"Voice Manager destroy s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值