每次代码行“ window.speechSynthesis.speak(msg);”被称为Web应用程序将崩溃
为了确保它不是代码的其他部分导致崩溃,我尝试将其注释掉,该应用将正常运行。
奇怪的是,即使程序崩溃并且我返回主屏幕,“讲话”也将成功执行并说出完整的句子
function Speak(){
var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[1];
msg.lang = 'en-US';
msg.rate = 1;
msg.text = VoiceText;
window.speechSynthesis.speak(msg);
}
我会像上面那样调用上面的函数
VoiceText = "Hello World";
Speak();
我注意到,有时在崩溃之后,当应用重新启动时,它会说几次而没有问题,然后再次崩溃
如果有人对导致问题的原因有所了解,或者他们可以推荐其他客户端文本2讲话,我将不胜感激,谢谢
答案 0 :(得分:1)
我曾尝试运行具有与上述代码完全相同的代码的webapp。 不幸的是,我看不到您提到的问题。 (没有崩溃,每当Speak打电话时tts都运行良好。)
要进行更多检查,可以让我知道您使用的SW环境吗? 您可以通过设置->关于手表->软件->(软件版本和Tizen版本)
获取所需的通知。答案 1 :(得分:1)
我如下检查了您在Galaxy Watch和Tizen Studio模拟器上的代码。但我找不到任何崩溃。 您能否更详细地共享源代码,以在我这一边重现此问题?我可以进一步调查问题。
function Speak(VoiceText) {
var msg = new SpeechSynthesisUtterance();
var voices = window.speechSynthesis.getVoices();
msg.voice = voices[1];
msg.lang = 'en-US';
msg.rate = 1;
msg.text = VoiceText;
window.speechSynthesis.speak(msg);
}
window.onload = function() {
document.addEventListener('tizenhwkey', function(e) {
if (e.keyName == "back")
try {
tizen.application.getCurrentApplication().exit();
} catch (ignore) {
}
});
// Sample code
var textbox = document.querySelector('.contents');
textbox.addEventListener("click", function() {
box = document.querySelector('#textbox');
box.innerHTML = box.innerHTML == "enabled" ? "disabled" : "enabled";
Speak("Current Running State is " + box.innerHTML);
});
};