From 89cc717e3ccd49d49539b25d7a8554126504b51f Mon Sep 17 00:00:00 2001 From: hdw <496960745@qq.com> Date: 星期五, 02 十一月 2018 08:53:20 +0800 Subject: [PATCH] 电池配组记录区/县添加 --- gx_tieta/WebRoot/js/VoiceUtil.js | 56 +++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 49 insertions(+), 7 deletions(-) diff --git a/gx_tieta/WebRoot/js/VoiceUtil.js b/gx_tieta/WebRoot/js/VoiceUtil.js index a69bf9c..6bf489e 100644 --- a/gx_tieta/WebRoot/js/VoiceUtil.js +++ b/gx_tieta/WebRoot/js/VoiceUtil.js @@ -1,28 +1,67 @@ // 璁剧疆璇煶鎾姤瀵硅薄 var Voice = function() { this.speak = window.speechSynthesis; + this.tospeak = new SpeechSynthesisUtterance(''); this.voice = ''; this.zh_CN = false; - this._setLang(); // 鑾峰彇骞舵娴嬫槸鍚︽湁涓枃鐨勭幆澧� + this.rate = 1.5; + this._setLang(); // 鑾峰彇骞舵娴嬫槸鍚︽湁涓枃鐨勭幆澧� + this.timeInterval = 27; //寰幆闂撮殧(绉�) + this.speak_enable = true; //ture:寮�鍚闊虫挱鎶� false:鍋滄璇煶鎾姤 }; // 鎾姤璇煶 (璋冪敤鍙戝0鐨勬柟娉曟椂璇蜂娇鐢ㄥ欢鏃跺彂澹�) -Voice.prototype.play = function(txt) { +Voice.prototype.play = function(txt,callback) { if(!this.zh_CN) { console.info('浣犵殑鐢佃剳涓嶆敮鎸佷腑鏂囨挱鎶ワ紒'); } - console.info(this.zh_CN); + _timeInterval = this.timeInterval; + //console.info(this.speak_enable); + if(!this.speak_enable){ //璇嗗埆鏄惁寮�鍚0闊虫挱鎶� + if(callback && typeof callback == 'function'){ + setTimeout(function(){ + callback(); + }, Math.abs(_timeInterval)*1000); + } + return; + } this.cancel(); - var to_speak = new SpeechSynthesisUtterance(txt); - to_speak.voice = this.voice; // 璁惧畾涓枃鎾姤 - - this.speak.speak(to_speak); + this.tospeak.text = txt; + this.tospeak.voice = this.voice; // 璁惧畾涓枃鎾姤 + this.tospeak.rate = this.rate; + //console.info(to_speak); + var starttime = new Date(); + this.speak.speak(this.tospeak); + //console.info(this.tospeak); + this.tospeak.onend = function(event) { + //console.info("鎾斁缁撴潫"); + if(callback && typeof callback == 'function'){ + var endtime = new Date(); + var timelong = (endtime.getTime()-starttime.getTime())/1000; + //console.info(parseInt(_timeInterval)+"==="+parseInt(timelong)); + if(timelong > this.timeInterval){ + callback(); + }else{ + setTimeout(function(){ + callback(); + }, Math.abs(_timeInterval-timelong)*1000); + } + } + }; + }; // 閫�鍑哄綋鍓嶆挱鎶� Voice.prototype.cancel = function() { this.speak.cancel(); +}; + + +//鍋滄璇煶鎾姤 +Voice.prototype.stopSpeak = function() { + this.speak.cancel(); + this.speak_enable = false; }; // 妫�鏌ュ綋鍓嶈瑷�鐜 @@ -41,4 +80,7 @@ }, 0); }; + + var voice = new Voice(); +voice.cancel(); \ No newline at end of file -- Gitblit v1.9.1