- 用wx.createInnerAudioContext连续播放音效无法完整体现效果?
初学者,在做一个模拟发报的小程序练手,输入电码字符串,比如.- -...;现在需要遍历这个字串,如果是.播放嘀的音效,如果是-播放嗒的音效,两个是本地mp3文件。代码很简单。音效也能放出来,但是耳朵听到的效果是不完整的。.- -...这个字串要耳朵最终听到“嘀嗒空嗒嘀嘀嘀”这样的效果,但程序实际听到的是“嘀嗒”的效果。感觉就是for循环和play函数是异步的,循环走的很快,但play函数来不及进行中断。无法保证音效的完整性。不知有什么方法可以保证发出的音是理想的效果。wxml中就是绑定一个按钮事件,就不列代码了。js页面中音效的处理代码如下: var strCodeResule= '.- -...' var i = 0//循环变量,来循环整个字符串 const DaAudio = wx.createInnerAudioContext()//嗒的音效 const DiAudio = wx.createInnerAudioContext()//嘀的音效 DaAudio.autoplay = false DaAudio.src = '/pages/src/基准电报长音.mp3' DiAudio.autoplay = false DiAudio.src = "/pages/src/基准电报短音.mp3" //循环访问电码串每个字符 iLenth = strCodeResule.length//获取电码串长度 for (i = 0; i < iLenth; i++) { //如果是.,要发短音 if ('.' == strCodeResule[i]) { //发短音 DiAudio.play() } else if ('-' == strCodeResule[i]) { //发长音 DaAudio.play() } else { //其它字符不发音 } }
2020-12-10 - object数据类型如何处理key值不存在的场景?
定义了一个object类型的数组。里面存放的是有对应关系的二元组,比如 student:{ 'A':'21', 'B':'12', 'C':'13' } 在程序界面会允许输入字符然后的这个数组去找有没有这个人。有的话返回年龄。没有的话返回一个固定值。 我是通过定义一个变量d,来接收输入框的文字,然后通过this.data.student[d]来获取对应年龄数据。 现在碰到的问题是,如果输入的字符是‘D’,在这个数组中没有,程序直接中断,后续的一些动作也走不下去了,try...catch也没用。请问'D'这种场景该怎么操作下去?我希望能判断出这个字符是否在object对象数组中存在。针对存在和不存在可以写相应的处理代码。 多谢
2020-12-03