☞:官方文档

☞:网页示例

具体步骤:

  1.通过 socket.io 接收后端传过来的数据。

  2.判断是否在播放声音。  如果没有则直接获取百度 token 播放声音

  3.如果有,则存入数组。声音播放结束后,播放数组中的数据并且移除将要播放的数据

项目代码(注意,代码有删减仅供参考):

<template>
<div>
<div class="app">
<div id="bdtts_div_id">
<audio ref="audio" id="tts_autio_id" :src="audioSrc" autoplay="autoplay" @canplay="playing()" @ended="ending()">
</audio>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
audioSrc: '',
orderArr: [],
isPlay: false
}
},
methods: {
playing() {
// 开始播放声音
},
ending() {
          // 声音播放结束
console.log('audio end'); var arr = this.orderArr; console.log(this.orderArr) if (arr.length > 0) {
this.isPlay = true;
var data = arr[0]; this.orderArr.splice(0,1); this.axios.get('baidu', {
params: { //请求参数
}
}).then((res) => { var str = ''
if('wx' == data.type) {
str = '微信支付'
} else if('zfb' == data.type) {
str = '支付宝支付'
} str = str + data.message + '元'; this.audioSrc = 'http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=15378723&tok=' + res.data.access_token + '&tex=' + str + '&vol=15&per=0&spd=5&pit=5&aue=3';
this.$refs.audio.play()
}) } else {
this.isPlay = false;
} }
},
created: function() { this.$options.sockets.chat = (data) => {
console.log(data);
          // data: {id: 4, message: 44, type: "wx", order: "v3TYbgt1ea1551428506775"}
if(data.id == this.$route.query.id) { /**
* 1.添加进数组中
* 2.判断是否在播报
* 3.如果没有在播报---播放提醒
* 4.如果有在播放---播放结束之后,移除已播放过的内容
*/ if(this.isPlay == false) { this.isPlay = true; this.axios.get('baidu', {
params: { //请求参数
}
}).then((res) => { var str = ''
if('wx' == data.type) {
str = '微信支付'
} else if('zfb' == data.type) {
str = '支付宝支付'
} str = str + data.message + '元'; this.audioSrc = 'http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=15378723&tok=' + res.data.access_token + '&tex=' + str + '&vol=15&per=0&spd=5&pit=5&aue=3';
this.$refs.audio.play()
}) } else { console.log('存入数据')
this.orderArr.push(data);
} }
} }
}
</script> <style scoped>
.app {
margin-top: 200px!important;
margin-left: 33px!important;
}
</style>

百度语音合成---前端vue项目的更多相关文章

  1. 团队开发前端VUE项目代码规范

    团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658   一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...

  2. 前端Vue项目——登录页面实现

    一.geetest滑动验证 geetest官方文档地址:https://docs.geetest.com/ 产品——极速验证:基于深度学习的人机识别应用.极验「行为验证」是一项可以帮助你的网站与APP ...

  3. 前端Vue项目——首页/课程页面开发及Axios请求

    一.首页轮播图 1.elementUI走马灯 elementUI中 Carousel 走马灯,可以在有限空间内,循环播放同一类型的图片.文字等内容. 这里使用指示器样式,可以将指示器的显示位置设置在容 ...

  4. 前端vue项目部署到tomcat,一刷新报错404解决方法

    公司前端写的后台部署到tomcat webapps目录下后,无法进行刷新,一刷新就会报错404,自动跳的404页面.在网上查了下,官方说是HTML5 History 模式引发的问题,但是解决方案中,并 ...

  5. 前端vue项目执行npm install 报错cd() never called()

    前端我刚开始接触Vue,从GitHub上下载了代码程序,但缺少一些插件,用vscode打开并下载插件执行报错cd() never called! 解决的方式 1.执行cmd命令行不要再vscode里执 ...

  6. 前端vue项目-关于下载文件pdf/excel(三)

    最近在做一些需求,需要下载一些文件信息,最频繁的就是下载excel文件到本地了 看过了很多方法,做个整理吧哈哈哈哈 参考的文章链接: https://www.cnblogs.com/jiangweic ...

  7. 前端Vue项目——购物车页面

    一.加入购物车的两种策略 1.加入购物车接口 在 src/restful/api.js 中写入添加购物车接口: // 加入购物车的接口 export const shopCart = (params) ...

  8. 前端Vue项目——初始化及导航栏

    一.项目初始化 创建webpack模板项目如下所示: MacBook-Pro:PycharmProjects hqs$ vue init webpack luffy_project ? Project ...

  9. 前端Vue项目——课程详情页面实现

    一.详情页面路由跳转 应用 Vue Router 编程式导航通过 this.$router.push() 来实现路由跳转. 1.绑定查看详情事件 修改 src/components/Course/Co ...

随机推荐

  1. mysql数据库安全性配置——日志记录

    一:开启数据库日志记录 (1)在查看数据库是否开启日志记录,默认是OFF,即关闭状态.(可在数据库中执行该查询语句,也可在服务器端执行) show variables like 'log_bin'; ...

  2. [Python] Python 学习记录(2)

    1.range(x,y) [x,y) >>> range(0,4) #0,1,2,3 >>> range(1,4) #1,2,3 2.dics dics.get(k ...

  3. MongoDB 学习笔记之 分片和副本集混合运用

     分片和副本集混合运用: 基本架构图: 搭建详细配置: 3个shard + 3个replicat set + 3个configserver + 3个Mongos shardrsname Primary ...

  4. Nginx开启Gzip压缩提升页面加载速度

    1.在 nginx 的conf 目录下新建 gzip.conf 文件 #开启gzip压缩 gzip on; #设置允许压缩的页面最小字节数 gzip_min_length 1k; #申请4个单位为16 ...

  5. C# ManualResetEvent用法

    ManualResetEvent表示线程同步事件,可以对所有进行等待的线程进行统一管理(收到信号时必须手动重置该事件) 其构造函数为: public ManualResetEvent (bool in ...

  6. mac系统Intellij Idea的java环境配置:JDK + Tomcat + Maven

    一.JAVA JDK查看与配置 1.查看java路径详细信息: /usr/libexec/java_home -V 2.java默认路径 jdk1.6: /System/Library/Java/Ja ...

  7. redis安装详细

      1.cd命令到你的下载文件夹下 2.输入命令下载redis ,可以自己选择下载的路径,redis表示版本号 wget http://download.redis.io/releases/redis ...

  8. 分库分表(7)--- SpringBoot+ShardingSphere实现分库分表 + 读写分离

    分库分表(7)--- ShardingSphere实现分库分表+读写分离 有关分库分表前面写了六篇博客: 1.分库分表(1) --- 理论 2.分库分表(2) --- ShardingSphere(理 ...

  9. Flannel的VXLAN模式工作原理

    跨主机通信的一个解决方案是Flannel,由CoreOS推出,最早支持的是UDP模式,但是因为性能太差被淘汰了, 过时的UDP模式 相比两台宿主机直接通信,多出了flanneld的处理过程,发出IP包 ...

  10. 如何正确的在 Android 上使用协程 ?

    前言 你还记得是哪一年的 Google IO 正式宣布 Kotlin 成为 Android 一级开发语言吗?是 Google IO 2017 .如今两年时间过去了,站在一名 Android 开发者的角 ...