Index: ssts-web/src/main/webapp/js/common.js =================================================================== diff -u -r27321 -r27325 --- ssts-web/src/main/webapp/js/common.js (.../common.js) (revision 27321) +++ ssts-web/src/main/webapp/js/common.js (.../common.js) (revision 27325) @@ -1963,23 +1963,42 @@ } } +/* + * 根据谷歌或IE浏览器选择不同的语音播放的方式 + */ + function googleOrIESpeak(content){ + if(!!window.ActiveXObject || "ActiveXObject" in window){ + if(speaker){ + speaker.speak(content); + } + }else { + var synth = window.speechSynthesis; + var googleSpeack = new SpeechSynthesisUtterance(); + //汉语 + googleSpeack.lang = 'zh-CN'; + googleSpeack.rate = 1; + googleSpeack.text = content; + synth.speak(googleSpeack); + } + } + /** * title 默认值 '提示' * pauseTime 默认值 5秒 (自动隐藏时间) */ function showResult(message,title,pauseTime) { showResultWithoutSpeak(message,title,pauseTime) - speaker.speak(message); + googleOrIESpeak(message); } // 当前页显示提示信息 function showResultCurPage(message,title,pauseTime) { showResultWithoutSpeakCurPage(message,title,pauseTime) - speaker.speak(message); + googleOrIESpeak(message); } function showResultExt(result) { var message = result.message; top.MsgTip.msgExt(result); - speaker.speak(message); + googleOrIESpeak(message); } /** * 功能与先前的showResult一样,但是没有语音 @@ -2004,7 +2023,7 @@ * @param message */ function speakMessage(message){ - speaker.speak(message); + googleOrIESpeak(message); } // 在当前页信息 Index: ssts-web/src/main/webapp/js/speaker.js =================================================================== diff -u -r26669 -r27325 --- ssts-web/src/main/webapp/js/speaker.js (.../speaker.js) (revision 26669) +++ ssts-web/src/main/webapp/js/speaker.js (.../speaker.js) (revision 27325) @@ -7,6 +7,7 @@ // } return tousseName; } + /** * 根据类型,获取器械包的真实名称。目前消毒物品、自定义器械包、外来器械包需要处理 * @param tousseName 器械包名称,可能包含下划线 @@ -61,9 +62,29 @@ * 通知一个消息,比如提示信息 */ function notice(msg){ - speaker.speak(msg); + googleOrIESpeak(msg); Ext.Msg.alert("提示",msg); } + +/* + * 根据谷歌或IE浏览器选择不同的语音播放的方式 + */ + function googleOrIESpeak(content){ + if(!!window.ActiveXObject || "ActiveXObject" in window){ + if(speaker){ + speaker.speak(content); + } + }else { + var synth = window.speechSynthesis; + var googleSpeack = new SpeechSynthesisUtterance(); + //汉语 + googleSpeack.lang = 'zh-CN'; + googleSpeack.rate = 1; + googleSpeack.text = content; + synth.speak(googleSpeack); + } + } + /** * 登录欢迎信息 */ @@ -73,9 +94,8 @@ welcome += departName + '的'; } welcome += userName; - if(speaker){ - speaker.speak(welcome); - } + + googleOrIESpeak(welcome); } /** * 器械包集合对象,负责对器械包分组并统计数量 @@ -268,7 +288,8 @@ */ this.speakContent = function(){ var content = this.getSpeakContent(); - speaker.speak(content); + + googleOrIESpeak(content); } /** * 获取所有物品的汇总信息,由类内部调用 @@ -298,9 +319,9 @@ */ this.speak = function(detailMsg,simpleMsg){ if(this.type == MESSAGE_PROMPT_TYPE_DETAIL){ - speaker.speak(detailMsg); + googleOrIESpeak(detailMsg); }else if(this.type == MESSAGE_PROMPT_TYPE_SIMPLE){ - speaker.speak(simpleMsg); + googleOrIESpeak(simpleMsg); } } /** @@ -351,7 +372,7 @@ } function confirmNUm(amount,ids){ if(amount > 9){ - speaker.speak(amount); + googleOrIESpeak(amount); }else{ playAudioAndTts(amount,ids); } @@ -377,7 +398,7 @@ if(speakBasket && msg == ""){ speakBasket.speakContent(); }else{ - speaker.speak(msg); + googleOrIESpeak(msg); } } } \ No newline at end of file