近期接到需求,内容页中的文字要实现语音播报功能,语音生成已经存入数据库

var myAudio = new Audio();
//arr 中存放的是音频数据,数组的大小是不确定的
var arr = ['xxx.wav','xxx.wav','xxx.wav']
// 记录播放音频数组位置
var i = 0;
// 音频对象预加载
myAudio.preload = true;
// 控制按钮不显示
myAudio.controls = false;
// 取消自动播放(自制按钮实现)
myAudio.autoplay = false;
// 将第一个音频放入对象
myAudio.src = arr[i];
$(document).on('click', '.value', function () {if (myAudio.paused) {myAudio.play();// 播放$('.fa-volume-up').attr('style', 'color: #FF5151')myAudio.loop = false;//禁止循环,否则无法触发ended事件 // 给对象添加播放结束监听,结束后触发playEndedHandler()myAudio.addEventListener('ended', playEndedHandler, false);} else {myAudio.pause()$('.fa-volume-up').attr('style', '')}})
function playEndedHandler() {// 音频结束向下一个移动i++;if (i + 1 > arr.length) {// 当数组中的音频全部结束后取消监听        myAudio.removeEventListener('ended',playEndedHandler, false);// 将音频对象中的播放地址置为第一个i = 0;myAudio.src = arr[i]$('.fa-volume-up').attr('style', '')return true} myAudio.src = arr[i]if (myAudio.paused) {myAudio.play();// 播放} else {myAudio.pause()}
}

3.总结

代码是不是有些绕,其实代码中用到了递归思想,还记得递归条件吗?
1.起始条件:点击事件
2.终止条件:当全部的音频播放结束(注意是播放结束)
3.自身调用条件:一条音频播放结束
在回头看一遍就会豁然开朗

前端实现语音播报功能相关推荐

  1. 【App开发】有语音播报功能的摇号软件:演示视频、开发历程

    文章目录 1 故事背景 2 开发历程 2.1 技术选用 2.2 语音播报功能 2.3 生成随机数 2.4 前端页面编写 3 演示效果 1 故事背景 昨晚网上有人找我制作一个自动随机数摇号并语音播报出来 ...

  2. ie浏览器语音播报功能实现

    文章目录 ie浏览器语音播报 spvoice详细接口 示例代码 异步播报 等待播报完毕 参考 ie浏览器语音播报 在ie下用 SpVoice实现语音播报功能 spvoice详细接口 SpVoice I ...

  3. 实现百度地图导航Demo的语音播报功能

    上文中实现了在本地导入百度地图导航Demo,那么在此基础上如何实现导航的语音播报呢? 一.为该应用申请语音播报(也叫注册) http://developer.baidu.com/map/index.p ...

  4. iOS 后台语音播报功能开发过程中的那些坑

      上个版本的开发计划中产品同学建议在我们的商家版App中做后台语音播报功能,在评审的时候我就在想,完全可以通过Push静默推送来实现后台播放音频来实现(后续事实证明,这是个大坑).   关于静默推送 ...

  5. php加入语音播报功能_PHP实现语音播报功能

    大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很高大上,都说PHP是最好的编程语言,今天我就带大家来实现一个语音播报功能!先大体说一个思 ...

  6. html5实现百度语音播报功能

    html5实现百度语音播报功能 总结 记录一下,html5调用百度语音接口实现语音播报功能,简单的完整案例 <!DOCTYPE html> <html> <head> ...

  7. APP收款语音播报功能讲解

    一.背景 比起主动扫码能确定收款多少与是否到账,扫二维码支付场景不能直接确认,需要核对客户付款截屏,目前微信.支付宝在扫二维码支付后,均支持收款方自动播报收款到账信息,为了秦丝APP有更好体验,也需要 ...

  8. MediaPlayer实现金额的语音播报功能

    推荐阅读: SurfaceView+MediaPlayer封装之路 Android学习资源分享合集(1) 最近写了一个金额的语音播报功能,已封装成依赖库到Github,希望对大家有所帮助. Githu ...

  9. 一定要了解的小常识:聚合支付有语音播报功能

    在大部分商机都是使用聚合支付收款,他们在营业收款时都十分需要语音播报,这样可以让他们的收款效率大大提高,那么聚合支付有语音播报功能吗?该怎么去开通呢? 聚合支付二维码:从一柜多码到一柜一码 以往,商家 ...

最新文章

  1. java中遍历map的两种方式
  2. android分屏资源适配,android7.0分屏适配
  3. after oracle alter,关于数据库级ALTER的触发器
  4. Orbeon form 的安装和使用教程
  5. c语言简单密码字符a用f代替,c语言实验.doc
  6. 牛客网 牛客小白月赛1 C.分元宵-快速幂
  7. jQuery之.queue()
  8. linux 关机命令_小猿圈Linux基础命令汇总
  9. relative会脱离文档流吗_css position: absolute脱离文档流详解
  10. Kaggle竞赛实战系列(一):手写数字识别器(Digit Recognizer)得分99.53%、99.91%和100%
  11. 《第一行代码》第三版之我的第一行Android代码(一)
  12. VFL-SFP业界首个光纤可视化故障定位器SFP模块
  13. 用友u8系统管理服务器,用友U8服务软件建立新账套的教程
  14. k8s集群Canal的网络控制
  15. 清理win7系统盘空间
  16. MongoDB 分片迁移
  17. 关于测试排期的那些事
  18. Apollo GPS调试笔记
  19. PhpStorm中实现代码自动换行
  20. JAVA对接海康威视开发文档

热门文章

  1. 62、backtrader的一些高级技巧---如何基于日线实现尾盘选股第二日卖出(各种订单的综合使用)?
  2. 风力发电机组的温升问题如何解决呢?
  3. backdoorphp.webshell.ad后门病毒怎么办?
  4. java nio rewind_NIO-java.nio.ByteBuffer中flip、rewind、clear方法的区别
  5. iceberg - checklist 清单
  6. 内齿轮铣齿机铣削动力头的设计(论文+CAD图纸)
  7. 【.Net实用方法总结】 整理并总结System.IO中MemoryStream类及其方法介绍
  8. linux 服务器被植入ddgs、qW3xT.2挖矿病毒处理记录
  9. 点击按钮显示文字,再次点击隐藏文字
  10. CSS3 vw/vh 实现内容窗口自适应