百度语音合成---前端vue项目

☞:官方文档
☞:网页示例
具体步骤:
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项目的更多相关文章
- 团队开发前端VUE项目代码规范
团队开发前端VUE项目代码规范 2018年09月22日 20:18:11 我的小英短 阅读数 1658 一.规范目的: 统一编码风格,命名规范,注释要求,在团队协作中输出可读性强,易维护,风格一致 ...
- 前端Vue项目——登录页面实现
一.geetest滑动验证 geetest官方文档地址:https://docs.geetest.com/ 产品——极速验证:基于深度学习的人机识别应用.极验「行为验证」是一项可以帮助你的网站与APP ...
- 前端Vue项目——首页/课程页面开发及Axios请求
一.首页轮播图 1.elementUI走马灯 elementUI中 Carousel 走马灯,可以在有限空间内,循环播放同一类型的图片.文字等内容. 这里使用指示器样式,可以将指示器的显示位置设置在容 ...
- 前端vue项目部署到tomcat,一刷新报错404解决方法
公司前端写的后台部署到tomcat webapps目录下后,无法进行刷新,一刷新就会报错404,自动跳的404页面.在网上查了下,官方说是HTML5 History 模式引发的问题,但是解决方案中,并 ...
- 前端vue项目执行npm install 报错cd() never called()
前端我刚开始接触Vue,从GitHub上下载了代码程序,但缺少一些插件,用vscode打开并下载插件执行报错cd() never called! 解决的方式 1.执行cmd命令行不要再vscode里执 ...
- 前端vue项目-关于下载文件pdf/excel(三)
最近在做一些需求,需要下载一些文件信息,最频繁的就是下载excel文件到本地了 看过了很多方法,做个整理吧哈哈哈哈 参考的文章链接: https://www.cnblogs.com/jiangweic ...
- 前端Vue项目——购物车页面
一.加入购物车的两种策略 1.加入购物车接口 在 src/restful/api.js 中写入添加购物车接口: // 加入购物车的接口 export const shopCart = (params) ...
- 前端Vue项目——初始化及导航栏
一.项目初始化 创建webpack模板项目如下所示: MacBook-Pro:PycharmProjects hqs$ vue init webpack luffy_project ? Project ...
- 前端Vue项目——课程详情页面实现
一.详情页面路由跳转 应用 Vue Router 编程式导航通过 this.$router.push() 来实现路由跳转. 1.绑定查看详情事件 修改 src/components/Course/Co ...
随机推荐
- jenkins+svn+Ant+tomcat+非maven项目构建
首先,输入项目名称,创建一个自由风格的项目; 然后,配置旧项目的策略参数,目的是防止构建项目太多,占用资源. 下一步,jdk版本选择: 下一步,关联svn项目. 下一步:配置ant 看不清,再来一张. ...
- java基础之读取文件方法大全
1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如 ...
- JAVA TCP/IP网络通讯编程(一)
一个实例通过client端和server端通讯 客户端发送:“我是客户端,请多关照” 服务端回复:“收到来自于"+s.getInetAddress().getHostName()+" ...
- Spark 学习笔记之 union/intersection/subtract
union/intersection/subtract: import org.apache.spark.SparkContext import org.apache.spark.rdd.RDD im ...
- rest_framework视图
知识预览 视图 回到顶部 视图 使用混合(mixins) 上一节的视图部分: from rest_framework.views import APIView from rest_framewor ...
- mongoDB4.0数据库
下载:https://www.mongodb.com/ 安装:略 注意:使用前修改bin目录下配置文件mongodb.cfg,删除最后一行的'mp'字段 1. 启动服务与终止服务 net start ...
- Bran的内核开发教程(bkerndev)-02 准备工作
准备工作 内核开发是编写代码以及调试各种系统组件的漫长过程.一开始这似乎是一个让人畏惧的任务,但是并不需要大量的工具集来编写自己的内核.这个内核开发教程主要涉及使用GRUB将内核加载到内存中.GR ...
- Ubuntu安装时卡死在启动界面
上下选中Install Ubuntu后,按'e'进入编辑页面(不要按回车),删除'quiet splash'之后的"---",输入"$vt_handoff acpi_os ...
- HTML DIV充满整个屏幕
<!DOCTYPE html> <html> <head> <title>A Little Game!</title> <meta c ...
- Cocos2d-x 学习笔记(11.6) Sequence
1. Sequence 动作序列.动作按参数顺序执行,动作总时长为每个动作的时长之和. 1.1 成员变量 FiniteTimeAction *_actions[]; float _split; // ...