JavaScript离线语音播报

2025-04-21 19:57:24

1、 大部分公司这样做的:”前端程序猿去想吧,一定要弄出来,这个功能很重要!” 是不是有一万只那啥在心里飞? 没关系!其实有方法!

JavaScript离线语音播报

2、 首先我们先解决最常用谷歌浏览器,H5有个语音合成:Speech Synthesis ,基本上兼容大部分的主流浏览器,但是完全不兼容IE,所以一会我们还有IE的方法。那么我们介绍一下Speech Synthesis如何使用,其实和简单: to_speak = window.speechSynthesis, to_speak =newSpeechSynthesisUtterance(“Hello world”); window.speechSynthesis.speak(to_speak); 对!就是这三行代码就可了,简单吧?当然还有一些其细节上的方法,但是如果语音阅读只需要这三行代码就可是,去试一下

JavaScript离线语音播报

3、 这些是一些常用的方法: onstart– 语音合成开始时候的回调。 onpause– 语音合成暂停时候的回调。 onresume– 语音合成重新开始时候的回调。 onend– 语音合成结束时候的回调。(这个很重要,我们可以根据结束去播放下一条) 接下来是speechSynthesis对象,主要作用是触发行为,例如读,停,还原等: speak()– 只能接收SpeechSynthesisUtterance作为唯一的参数,作用是读合成的话语。 stop()– 立即终止合成过程。 pause()– 暂停合成过程。 resume()– 重新开始合成过程。 getVoices– 此方法不接受任何参数,用来返回浏览器支持的语音包列表,是个数组

4、 谷歌使用方法就介绍到这里,如果大家需要更详细的讲解那就只能查一下API了,接下来介绍一下IE的方法:,接下来介绍一下IE的方法: voiceObj =newActiveXObject("Sapi.SpVoice"); //这个建议放到全局变量中否则可文本没有阅读完就销毁了,语音只能阅读几个字! voiceObj.Speak("Hello world", 1); //第一个参数为文本,第二个参数决定异步还是同步,1是异步,2是同步。 对!就这两句就可以阅读了,可以在IE试一试!(在谷歌中会报错,所以用的时候需要写好兼容!) IE中我没找到阅读完的回调,但是发现一个Status.RunningState,在阅读的时候是2,暂停是1,刚阅读结束时3,所以我们可以用这个去完成结束后事件!

JavaScript离线语音播报

5、 作为一个嘴笨的程序猿可能说的大家也没能理解好,道个歉:“对不起了,其他的程序猿们!”,咱们还是用咱们最擅长的方式来讲解一遍吧,上代码!

JavaScript离线语音播报

6、 代码贴上来总踩雷,也不知道那个词有问题,我给你大家发知乎上我发表的这篇经验,直接上去粘贴代码就行,真心不是故意的! 链接:https://zhuanlan.zhihu.com/p/41179191

JavaScript离线语音播报

7、 这是完整的代码,大家直接拷到自己的编辑器上使用,我从编辑器上拷贝过来发现好像格式有点不整齐了,大家考到自己编辑器上格式应该比较整齐,不整齐就在线格式化一下,写的不好大家谅解

JavaScript离线语音播报
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢