博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
林小宅的点名册
阅读量:5920 次
发布时间:2019-06-19

本文共 1562 字,大约阅读时间需要 5 分钟。

由于职业的需要,我每次上课都要点名来确认班上的到课率,因为一边点一边看学生举手效率低下,就上网找了一篇用JavaScript文字转语音的博客,实现了一个在线点名的网页,下面是我的代码:

1   2   3       4         
5 林小宅的花名册 6 7 20 21 22
23 准备好了吗? 24
25
26
34
35
36
37
38
42
43 44 414 415
View Code

这里比较遗憾的是,当看到有学生没有举手的时候,没有办法暂停下来,待后续的改进,因此我加了一个按钮,当发现学生没有举手的时候就点击“观察人员”,把该学生的名单打印到控制台,点完之后再问没来的具体情况。做这个程序也就花了半个小时,卡在setTimeout()这个函数上。因为我需要实现的效果是每隔2秒就点一个学生的名字,用到了for循环,但是每次for循环的时候并不会停下来去点名,而是一下子把for循环的语句执行完,把每个setTimeout加到待执行队列中,然后全部的setTimeout一下全部执行了,形成的效果就是一个班的54个人的名字同时点出来了。网上有人说可以用立即执行函数,用了之后还是没有达到效果,后来才知道原来是setTimeout不能执行带有参数的函数,必须得用一个匿名函数来封装调用,最后的效果是这样的 :

1 for(var i = 0;i

另外就是音频播放的问题,media.play()和media.pause()的含义,意思大概明白了,但是很难言语,这里就不说了,只说解决的方法:

1 var media = document.getElementById("tts_autio_id");2             const playPromise = media.play();3             if (playPromise !== null){4                 playPromise.catch(() => { media.play(); })5             }6             document.getElementById("namename").innerHTML = ttsText;

这是国外大神提供的参考代码,使用了一下,发现很好用呢,就这样,睡觉!!!

 

转载于:https://www.cnblogs.com/baby-lijun/p/9775515.html

你可能感兴趣的文章
APP中的第三方“支付”功能该如何测试
查看>>
HDU 1907
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
SQL Over
查看>>
shell 批量压缩指定文件夹及子文件夹内图片
查看>>
TextGrocery中文文本分类处理
查看>>
WinForm 之 自定义标题栏的窗体移动
查看>>
PHP合并数组+与array_merge的区别
查看>>
可汗学院超经典、超实用概率论总结——商女不知忘国恨,隔江犹看概率论
查看>>
ftoa浮点型转换成字符串
查看>>
翻译:MariaDB wait/nowait
查看>>
使用Costura.Fody将源DLL合并到目标EXE
查看>>
今年暑假不AC
查看>>
sql语句中----删除表数据drop、truncate和delete的用法
查看>>
Office2010从第三页开始设置页码
查看>>
想知道Java与内存的关系?这篇文章全部告诉你
查看>>
SVG笔记
查看>>
ES6精华:Symbol
查看>>