使用谷歌浏览器的语音播报功能时发现不能播放
<script>
if(!('speechSynthesis' in window)) {
throw alert("对不起,您的浏览器不支持")
}
setTimeout(()=> {
play()
},2000)
function play(){
var mess = '搜狗[1] 是搜狐公司的旗下子公司,于2004年8月3日推出,目的是增强搜狐网的搜索技能,主要经营搜狐公司的搜索业务。在搜索业务的同时,也推出搜狗输入法、搜狗高速浏览器。'
var msg = new SpeechSynthesisUtterance(mess)
msg.volume = 100 // 声音的音量
msg.rate = 1 // 语速,数值,默认值是1,范围是0.1到10
msg.pitch = 1.5 // 表示说话的音高,数值,范围从0(最小)到2(最大)。默认值为1
speechSynthesis.speak(msg)
}
</script>
打开控制台发现
audio.html:43 [Deprecation] speechSynthesis.speak() without user activation is no longer allowed since M71, around December 2018. See https://www.chromestatus.com/feature/5687444770914304 for more details
这是由于谷歌浏览器针对垃圾广告和诈骗网页的滥用谷歌浏览器开发团队已经决定自下个版本开始限制语音合成接口的自动播放。自新版本开始用户必须手动点击播放按钮才能播放语音合成内容,用户不主动操作那么直接禁止音频的播放。
解决办法在鼠标右击Chrome快捷图标=>属性=>快捷方式=>目标加入--autoplay-policy=no-user-gesture-required即可,如下图所示:
LA0M(1AP~6V$~L4I29Z{ML1.png
网友评论