收藏
回答

语音合成ios、华为无法播放

  1. 使用tts,合成的音频在开发工具可以正常播放,部分安卓机也可以正常播放,但是ios和华为无法播放

  2. 使用backgroundAudioManager.onEnded无法进入到方法内部

js代码:

const newsContent = [
  {
    "width": "",
    "describe": "",
    "type": "img",
    "title": "",
    "height": ""
  },
  {
    "type": 'paragraphs',
    "content": "新浪科技讯 北京时间5月18日凌晨消息,本周四,据《华尔街日报》报道,美国第三方支付公司PayPal正在就收购瑞典金融科技公司iZettle AB进行协商,该收购交易的金额大概在22亿美元左右。"
  },
  {
    "type": 'paragraphs',
    "content": "据《华尔街日报》称,该收购交易最快将于北京时间本周五上午对外公布。而最先报道该收购交易的Sky News则称,PayPal将在北京时间本周五晚上对外公布此交易。"
  },
  {
    "type": 'paragraphs',
    "content": "上周,iZettle宣布其计划将于今年在纳斯达克斯德哥尔摩证券交易所上市,这将使其成为欧洲地区最大的上市金融科技公司之一。"
  },
  {
    "type": 'paragraphs',
    "content": "该公司计划在IPO期间筹集约2.28亿美元资金。iZettle在2010年成立,主要业务是通过销售小型信用卡读卡机向小企业和个人提供支付服务。"
  },
  {
    "type": 'paragraphs',
    "content": "PayPal和iZettle都没有立即对此发表评论。(小宝)"
  }]
 
Page({
  data: {
    iid: 'AOTY0MTcyOTQyMzI',
    content: '',
    title: 'PayPal或22亿美元收购金融科技公司iZettle',
    publish: '2018/05/18 06:59',
    source: '新浪科技',
    creator: '',
    contentLists: '',
    currentIndex: 0,  //当前自然段索引
    maxIndex: 0
  },
 
  onLoad: function (e) {
    var that = this
    this.setData({
      currentIndex: 0
    })
    var k = 1
    var contentList = new Array()
    contentList[0] = that.data.title
    for (var i = 0; i < newsContent.length; i++) {
      if (newsContent[i].type == 'paragraphs') {
        console.log(newsContent[i].content)
        contentList[k] = newsContent[i].content
        k++
      }
      that.setData({
        contentLists: contentList,
        maxIndex: contentList.length - 1,
      })
    }
  },
 
  playButton: function () {
    this.playAudio(0)
    this.setData({
      currentIndex: 0
    })
  },
 
  pauseButton: function () {
    wx.pauseBackgroundAudio()
  },
 
  playAudio: function (e) {
    var that = this
    this.createAudio('http://dev.hivoice.cn/TTSServlet?text=' + that.data.contentLists[e] + '&voiceName=xiaoli&voicePitch=50&voiceSpeed=50&voiceVolume=50')
  },
 
  createAudio: function (playUrl) {
    let that = this
    const backgroundAudioManager = wx.getBackgroundAudioManager()
    wx.playBackgroundAudio({
      dataUrl: playUrl,
      title: that.data.title
    })
    wx.onBackgroundAudioStop(function () {
      that.next()
    })
    // backgroundAudioManager.onEnded(()=> {
    //   that.next()
    // })
  },
 
  next: function () {
    let that = this
    if (that.data.currentIndex != that.data.maxIndex) {
      that.setData({
        currentIndex: that.data.currentIndex + 1
      })
      that.playAudio(that.data.currentIndex)
    }
  }
})


最后一次编辑于  2018-05-25
回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2018-05-25

    你好,请提供一下出现问题的机型和微信版本,以及能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2018-05-25
    赞同
    回复