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

本文共 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

你可能感兴趣的文章
数据结构第二章小节
查看>>
基于 HTML5 WebGL 的 3D 工控裙房系统
查看>>
三目运算-高级嵌套用法思路教程
查看>>
SVG
查看>>
Maven之setting.xml 配置详解
查看>>
spring mvc 使用freemark配置
查看>>
新手如何更换自己喜欢的背景以及此背景的css码
查看>>
EOS开发环境搭建
查看>>
ReentrantLock和synchronized的区别
查看>>
判断JavaScript对象为null或者属性为空
查看>>
注意事项
查看>>
警惕Java,欢迎Javascript
查看>>
进程间传递文件描述符
查看>>
深入浅出linux三剑客之sed必杀技一例
查看>>
用C#.NET编写软件注册机
查看>>
SQL server分页方式
查看>>
Android IPC机制(二)用Messenger进行进程间通信【转】
查看>>
Javascript 严格模式详解
查看>>
Python3入门 Python3+Selenium做UI页面测试的学习
查看>>
两种查找算法的比较
查看>>