// 在 Vue 实例的 methods 中修改 playText 方法
playText(text) {
// 检查浏览器是否支持 Web Speech API
if ('speechSynthesis' in window) {
// 等待语音资源加载
if (speechSynthesis.getVoices().length === 0) {
// 使用箭头函数保持 this 上下文
speechSynthesis.onvoiceschanged = () => {
this.speakText(text); // 使用 this 调用
};
} else {
this.speakText(text); // 使用 this 调用
}
} else {
console.log('浏览器不支持文本转语音功能');
}
},
// speakText 方法也需要使用箭头函数或保持一致的调用方式
speakText(text) {
const msg = new SpeechSynthesisUtterance(text);
msg.lang = 'zh-CN';
msg.rate = 1;
msg.pitch = 1.1;
msg.volume = 1;
// 获取并设置中文语音
const voices = speechSynthesis.getVoices();
const chineseVoice = voices.find(voice => voice.lang.includes('zh'));
if (chineseVoice) {
msg.voice = chineseVoice;
}
speechSynthesis.speak(msg);
},
this.playText('箱已扫入!');