uni-app——语音识别后 UI 卡死?微信小程序 getRecorderManager 的坑,用 getRecordRecognitionManager 一步解决
问题语音输入功能使用getRecorderManager()voiceToText()实现用户说完话点击「完成」后弹窗卡死转圈动画不停按钮无法点击只能重启小程序。原因异步链路过长stop → onStop → readFile → voiceToText → resetState任何一个环节断裂如onStop不触发、readFile失败、voiceToText挂起resetState()都不会执行UI 永远停留在转换中状态。解决方案将getRecorderManager()voiceToText()替换为一体化管理器getRecordRecognitionManager()。核心改动javascript// 旧方式有问题 recorderManager uni.getRecorderManager(); pluginManager requirePlugin(WechatSI); // 需要手动stop → onStop → readFile → voiceToText → resetState // 新方式修复 const plugin requirePlugin(WechatSI); recordRecoManager plugin.getRecordRecognitionManager(); recordRecoManager.onStop (res) { // 识别结果直接在这里无需 readFile 和额外调用 if (res res.result) { formData.value.content res.result; } resetRecordState(); // 确保状态被重置 };效果对比对比项旧方式新方式异步链路长度5 步2 步文件 I/O需要 readFile无需回调保证可能丢失onStop/onError 必触发UI 卡死风险高无
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2492880.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!