微信小程序的录音、图片上传

思路:微信小程序中的录音文件存放地址是临时地址,所以发送给后台时是需要用wx.saveFile() 先下载到本地,地址变为本地地址,然后再上传给后台 。

录音上传

// 录音功能
start() {// console.log('开始录音')
 const recorderManager = wx.getRecorderManager();
 const options = {
  duration: 10000,
  sampleRate: 44100,
  numberOfChannels: 1,
  encodeBitRate: 192000,
  format: 'mp3',
  frameSize: 50,
  audioSource: 'auto'
 }
 // 开始录音
 recorderManager.start(options)
},
// 录音结束
send() {// console.log('录音结束')
 let that = this;
 const recorderManager = wx.getRecorderManager();
 recorderManager.stop();
 // 监听录音结束事件
 recorderManager.onStop((res) => {
   wx.saveFile({ // 下载到本地
    tempFilePath: res.tempFilePath,
    success(res2) {
       that.setData({
       voice: res2.savedFilePath
     })
   },
   fail(error) {
    console.log(error)
   }
 })
 const { tempFilePath } = res
 })
 // 监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回 
 调此事件
 recorderManager.onFrameRecorded((res) => {
 const { frameBuffer } = res
 })
}

图片上传

// 上传图片
  imgUpload() {
    var that = this;
    wx.chooseImage({
      sizeType: ['original', 'compressed'], // 可选择原图或压缩后的图片
      sourceType: ['album', 'camera'], // 可选择性开放访问相册、相机
      success: res => {
        var tempFilePaths = res.tempFilePaths;
        var imgs = that.data.images;
        for (var i = 0; i < tempFilePaths.length; i++) {
          if (imgs.length >= 9) {
            that.setData({
              images: imgs
            });
            return false;
          } else {
            imgs.push(tempFilePaths[i]);
          }
        }
        that.setData({
          images: imgs
        });
      }
    })
  }

猜你喜欢

转载自www.cnblogs.com/zm-97/p/12941441.html