WeChatアプレット開発戦闘(28):サウンドの再生、一時停止、停止

wx.playVoiceメソッドを使用して、指定したオーディオファイルを再生します。このメソッドでは、filePath属性を設定して、オーディオファイルのパスを指定する必要があります。wx.pauseVoiceメソッドを使用して、現在のオーディオファイルの再生を一時停止します。一時停止後、再度wx.playVoiceメソッドを呼び出して、一時停止した位置から再生を再開します。オーディオファイルを最初から再生する場合は、wx.stopVoiceメソッドを呼び出してオーディオファイルの再生を停止し、再度wx.playVoiceメソッドを呼び出してオーディオファイルを最初から再生する必要があります。アプレットで同時に再生できるオーディオファイルは1つだけです。現在のオーディオの再生中に前のオーディオが再生されている場合、前のオーディオの再生は終了します。

次のコードは、前のセクションのプログラムを改善したものです。録音を停止した後、録音したオーディオを再生、一時停止、停止できます。

index.wxml

<view style="margin:20px">
  <button  bindtap="startRecord">开始录音</button>
  <button style = "margin-top:10px" bindtap="stopRecord">停止录音</button>
  <button style = "margin-top:10px" bindtap="playVoice">播放录音</button>
  <button style = "margin-top:10px" bindtap="pauseVoice">暂停播放</button>
  <button style = "margin-top:10px" bindtap="stopVoice">停止播放</button>
</view>

index.js

var app = getApp()
Page({
  data: {
    recording: false,
    playing: false,
    hasRecord: false,
  },
  //开始录音
  startRecord: function () {
    var that = this;
    wx.startRecord({
      success: function (res) {
        console.log(res.tempFilePath);
        that.setData({
          hasRecord: true,
          tempFilePath: res.tempFilePath,
        })
      },
      complete: function () {
        that.setData({ recording: false })
      }
    })
  },
  //  停止录音
  stopRecord: function () {
    var that = this;
    console.log(this.data.tempFilePath);
    wx.stopRecord({
      success: function () {
        console.log('stop record success')
        that.setData({
          recording: false,
          hasRecord: false,
        })
      }
    })
  },
  //  开始播放录制的音频
  playVoice: function () {
    var that = this;
    wx.playVoice({
      filePath: this.data.tempFilePath,
      success: function () {
        console.log('play voice finished')
        that.setData({
          playing: false,
        })
      }
    })
  },
   //  暂停播放录制的音频
  pauseVoice: function () {
    wx.pauseVoice()
    this.setData({
      playing: false
    })
  },
  //  停止播放录制的音频
  stopVoice: function () {
    this.setData({
      playing: false,
 
    })
    wx.stopVoice()
  }
})

おすすめ

転載: blog.csdn.net/nokiaguy/article/details/108396383