为学单词小程序增加英文语音功能 |
您所在的位置:网站首页 › 拍照跟读英语小程序 › 为学单词小程序增加英文语音功能 |
英文发音的技术方案很多种,经过调查决定采用网易有道的发音API,真人发音质量比微软TTS标准好听很多。 有道api的url http://dict.youdao.com/dictvoice?type=0&audio= 这里type(0:美音,1:英音) 在小程序中不能直接访问有道url,所以只能在自己服务器上Nginx架设反向代理指向这个地址。 增加一个读单词方法: 代码语言:javascript复制readWord:function (word) { var voiceType = 1 if(this.data.isUsa){ voiceType = 0 } console.log( 'https://www.***.cn/youdao/dictvoice?type=' + voiceType +'&audio=' + word) wx.downloadFile({ url: 'https://www.***.cn/youdao/dictvoice?type=' + voiceType +'&audio=' + word, success: function (res) { console.log(res) let wordAudio = wx.createInnerAudioContext(); wordAudio.autoplay = true; wordAudio.src = res.tempFilePath; } }) },这样当用户点击“下一个”按钮的时候,就会自动朗读这个单词的发音。 ![]() 另外,说一下小程序的全局变量配置的问题。在微信小程序开发中,会遇到一个很实际的应用场景,就是一个变量会在多个页面进行使用。这样的的场景中,我们就需要使用全局变量,当然也有开发者说不能每个page页面都定义一个?如果需求改变需要修改这个变量,这个时候只需要修改全局,就能进行整个小程序的修改,如果每个page一个变量,将会在修改中花费大量的时间做低效的工作。 可以在app.js中定义全局变量, 代码语言:javascript复制globalData:{ userInfo:null, authorization:null, userId:null }在本文件可以使用this直接访问,其它页面如果需要访问全局变量需要引入: 代码语言:javascript复制var app = getApp()使用的时候,像下面这样访问: 代码语言:javascript复制header: { 'content-type': 'application/json' ,// 默认值 'authorization': app.globalData.authorization },当然还有另外一个方法,用引入js的方法定义全局变量,在公用js文件夹中创建一个保存全局变量的js文件,这种方法这里就不介绍了。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |