Xamarin TTS Speak执行失败,且一直返回操作错误(TTS - BUG调试血泪史)

2 篇文章 0 订阅
1 篇文章 0 订阅

Xamarin TTS Speak执行失败,且一直返回操作错误

最近用Xamarin做TTS开发,被一个BUG卡住项目进度:
ModelTest(只有两个类,测试TTS用),Monitor(现有项目,需要将TTS模块移植到该项目)
从ModelTest移植到Monitor无法进入TTS的oninit初始化函数,通过强制调用发现的确未初始化完成。为什么不执行初始化函数,如何解决?欢迎评论。

结论:目前问题解决了但原因仍未知,遇到同样问题的大佬可以参考下,希望可以帮到大家
调试开始时间:2018.7.16.17:30
调试完成时间:2018年7月19日01:25:16
调试耗时:一天半(累计TTS-BUG1(暂未分享)合计三天半)

解决方案尝试:

  • 各种多线程调用
  • 各种打断点
  • 各种清理
  • 各种配置尝试
  • 各种权限申请
  • 各种函数调用(从OnCreate到OnResume)
  • 从单例模式到直接实例化
  • 阅读各种内容(从字母数字到拼音汉字)
  • 能想到和能做到的我已经尽力了。唯一没做的就是通过软件设置语音引擎了(未完待续待验证)

求助大佬无数,解决无门,甚至官方文档对于错误的解释也只不过什么都没说
这里写图片描述


最终实现办法

鉴于之前BUG1解决过程中只能使用Click事件调用成功,尝试添加点击事件调用试试

添加的点击事件代码块:

        prob = FindViewById<ProgressBar>(Resource.Id.progressBar_Init);
        prob.Click += Prob_Click;
        private void Prob_Click(object sender, EventArgs e)
        {
            Thread.Sleep(100);

            TTS.GetTTSInstance(this).Speak("内存中存储");
        }

事实证明,这是有效的,并且,并且,“并且”当我再次注释掉点击事件相关代码,回退到之前代码,也可以发声了,一切恢复了正常,一切恢复了平静,就像什么事情没发生一样。

可能是某一种类似激发的机制,是Xamarin的坑,也可能是自己太年轻,技术不够深入,忽略了什么细节。如果,我是说“如果”这是Xamarin的BUG,一定要打开任督二脉才能好好编程,那么和我一样在Xamarin爬坑的大佬们得仔细了。

我打坑里走过


2018年7月19日
Dawn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值