收藏
回答

录音接口wx.playVoice,首次播放暂停之后,再次播放无响应

问题模块
API和组件
/**
 * 监测录音播放点击事件
 */
bindPlayRecordTap() {
  this.data.playing ? this.pauseVoice1() : this.playVoice1();
},
/**
 * 播放录音
 */
playVoice1() {
  console.log('play voice');
  const that = this;
  wx.playVoice({
    filePath: this.data.recordData,
    success(res) {
      console.log(res);
      that.setData({ playing: true });
    },
    fail(err) {
      console.log(err);
    },
    complete(res) {
      console.log(res);
    }
  });
},
/**
 * 暂停录音
 */
pauseVoice1() {
  console.log('pause voice');
  this.setData({ playing: false });
  wx.pauseVoice();
},


运行结果如下



首次点击播放之后,可以正常播放。播放途中暂停,再次点击播放,wx.playVoice()方法既不正常调用,也不提示错误。

从运行的结果可以看到,首次点击播放之后,wx.playVoice()返回了两次success的结果,不知道是不是因为这个原因引起的问题。

请问这个要如何解决。谢谢。

最后一次编辑于  2017-07-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • zhanglan张
    zhanglan张
    2017-10-19

    这个问题有没有解决?我有同样的问题。把silk文件上传到我的服务器。再下载下来。首次播放没问题。暂停后再次播放无响应。

      voicePlay: function (event) {

        wx.playVoice({

          filePath: this.data.silks[event.currentTarget.dataset.key]

        })

      },

      voicePause: function (event) {

        wx.pauseVoice()

      },

      voiceDownload: function (event) {

        var _filePath =XXXXXXX(服务器上的文件路径)

        console.log("_filePath:", _filePath)

        var that = this

        wx.downloadFile({

          url: _filePath,

          success: function (res) {

            var filepath= res.tempFilePath

            wx.saveFile({

              tempFilePath: filepath,

              success: function(res) {

                var tempdict = that.data.silks

                tempdict[event.currentTarget.dataset.key]=res.savedFilePath

                that.setData({ silks: tempdict })

              }

            })

          }

        })



    2017-10-19
    赞同
    回复
  • codefer
    codefer
    2018-07-03

    解决了吗?,也遇到同样问题,暂停了再开启播放就没声了。如果是函数bug,都一年了早该修复了吧。

    2018-07-03
    赞同
    回复