前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为学单词小程序增加英文语音功能

为学单词小程序增加英文语音功能

作者头像
程序你好
发布2021-08-20 11:02:12
7980
发布2021-08-20 11:02:12
举报
文章被收录于专栏:程序你好程序你好

英文发音的技术方案很多种,经过调查决定采用网易有道的发音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文件,这种方法这里就不介绍了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档