| | |
| | | this.speak = window.speechSynthesis;
|
| | | this.voice = '';
|
| | | this.zh_CN = false;
|
| | | this._setLang(); // 获取并检测是否有中文的环境
|
| | | this.rate = 1.5; |
| | | this._setLang(); // 获取并检测是否有中文的环境
|
| | | this.timeInterval = 28; //循环间隔(秒)
|
| | | this.speak_enable = true; //ture:开启语音播报 false:停止语音播报
|
| | | };
|
| | |
|
| | | // 播报语音 (调用发声的方法时请使用延时发声)
|
| | | 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.zh_CN);
|
| | | if(!this.speak_enable){ //识别是否开启声音播报
|
| | | 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; // 设定中文播报
|
| | |
|
| | | to_speak.rate = this.rate;
|
| | | console.info(to_speak);
|
| | | this.speak.speak(to_speak);
|
| | |
|
| | | var starttime = new Date();
|
| | | to_speak.onend = function(event) { |
| | | //console.info(event);
|
| | | 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);
|
| | | }
|
| | | }
|
| | | };
|
| | | |
| | | to_speak.onerror = function(event) { |
| | | //console.info(event);
|
| | | };
|
| | | };
|
| | |
|
| | | // 退出当前播报
|
| | | Voice.prototype.cancel = function() {
|
| | | this.speak.cancel();
|
| | | };
|
| | |
|
| | |
|
| | | //停止语音播报
|
| | | Voice.prototype.stopSpeak = function() {
|
| | | this.speak.cancel();
|
| | | this.speak_enable = false;
|
| | | };
|
| | |
|
| | | // 检查当前语言环境
|
| | |
| | | }, 0);
|
| | | };
|
| | |
|
| | |
|
| | |
|
| | | var voice = new Voice();
|
| | | voice.cancel(); |