[英]How to make sure the incoming voice from Google tts have fully loaded?
在低网络速度下进行测试,以正确使用JavaScript中的Google tts API,这种情况是有时读取但有时却无法读取,它可能会读取“ hi”之类的很短的文本,如何确保请求的音频已加载。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
function playit() {
var audio = new Audio();
audio.src = 'http://translate.google.com/translate_tts?ie=UTF-8&tl=en&q=Okay i can read but not alwayes';
//function(){testbeforplaying;}
audio.play();
}
</script>
</head>
<body>
<input type="button" value="say" onclick="playit()"/>
</body>
</html>
加载音频(或视频,图像)是异步操作,因此您需要收听浏览器的回调机制,以了解何时可以使用该文件。
更新
将type
添加到混音中,并进行演示:
如果是音频(和视频),则可以收听canplay
事件:
function playit() {
var audio = new Audio();
audio.addEventListener('canplay', function() {
this.play();
}, false);
audio.type = 'audio/mpeg';
audio.src = '...';
}
您也可以使用canplaythrough
代替canplay
。
(可选)执行以下操作:
function playit() {
var audio = new Audio();
audio.preload = 'auto';
audio.autoplay = true;
audio.type = 'audio/mpeg';
audio.src = '...';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.