有一个语音识别的功能,用了WechatSI插件。在开发版和体验版里使用完全正常,但是提交审核通过后正式发布,在正式的上线版本里按住语音输入按钮讲话时,就报错弹窗提示“语音识别失败”。这是什么原因?
// 设置语音识别回调
setupVoiceCallbacks() {
if (!this.voiceManager) return;
this.voiceManager.onStart = () => {
// 语音管理器启动
};
this.voiceManager.onRecognize = (res) => {
// 实时更新识别文字
if (this.isRecording && !this.isCanceled) {
this.recordingText = res.result || '正在录音...';
}
};
this.voiceManager.onStop = (res) => {
// 语音识别完成
// 如果没有取消且有识别结果,发送消息
if (!this.isCanceled && res.result && res.result.trim()) {
this.sendVoiceMessage(res.result);
}
};
this.voiceManager.onError = (err) => {
console.log('❌ 语音识别错误:', err);
// 只有真正的错误才显示提示
if (!this.isCanceled && err.retcode !== -30004) {
setTimeout(() => {
uni.showToast({
title: '语音识别失败',
icon: 'none',
duration: 1500
});
}, 100);
}
};
},
// 立即切换到按钮状态
switchToButtonState() {
console.log('🔄 切换到按钮状态');
this.isRecording = false;
this.isCanceled = false;
this.recordingText = '正在录音...';
this.startY = 0;
// 清理计时器
if (this.recordingTimer) {
clearInterval(this.recordingTimer);
this.recordingTimer = null;
}
this.recordingDuration = 0;
},
// 检查语音功能是否可用
isVoiceReady() {
if (!this.voiceManager) {
console.log('❌ 语音功能未就绪');
return false;
}
return true;
},
