js語音播報


其實這篇主要分享的重點不在於語音播報,因為它就一個公開接口

如果只是需要語音播報一下

function play(){
	var text = 播報;
	var ttsDiv = document.getElementById('bdtts_div_id');
	var au1 = '<audio id="tts_autio_id" autoplay="autoplay">';
	var sss = '<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text='+text+'" type="audio/mpeg">';
	var eee = '<embed id="tts_embed_id" height="0" width="0" src="">';
	var au2 = '</audio>';
	ttsDiv.innerHTML = au1 + sss + eee + au2;
}

  其中 lan 語言,用zh   ie為編碼格式 spd為速度傳1-9  數字越大越快  text為你要播報的內容

 

 

今天分享的重點在於 連續播報 

顯然 直接for循環是不行的

如我這次要做的

接到的是兩個數組

[1,2,3,4,5]

[3,5,2,8,4]

 

這是直接在列表中獲取到的,並且他是一一對應的

比如,1號位3件商品

 

 

so

 

有了以下操作

var basketCodes = [1,2,3,4,5];
var planAmounts = [3,5,2,8,4];
var rstArr = [];
for (var i = 0; i < basketCodes.length; i++){
	var rst = {};
	rst[basketCodes[i]] = planAmounts[i];
	rstArr.push(rst)
}
var i=0;
var timeTag=null;
function doPlay(){
	function play(){
		var key = Object.keys(rstArr[i]);
		var text = key+"號位"+rstArr[i][key]+"件商品";
		var ttsDiv = document.getElementById('bdtts_div_id');
		var au1 = '<audio id="tts_autio_id" autoplay="autoplay">';
		var sss = '<source id="tts_source_id" src="http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=5&text='+text+'" type="audio/mpeg">';
		var eee = '<embed id="tts_embed_id" height="0" width="0" src="">';
		var au2 = '</audio>';
		ttsDiv.innerHTML = au1 + sss + eee + au2;
	}
	timeTag = setTimeout(doPlay, 2000);
	play();
	i++;
	if(i == rstArr.length) {
		clearTimeout(timeTag);
	}
}
doPlay();

  

有興趣的同學可以試下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM