利用auido标签用base64来播放MP3。微信小程序播放base64音乐

734 阅读1分钟

在vue中

  base64ToBlob(base64, fileType) {
      let typeHeader = "data:application/" + fileType + ";base64,"; // 定义base64 头部文件类型
      let audioSrc = typeHeader + base64; // 拼接最终的base64
      let arr = audioSrc.split(",");
      let array = arr[0].match(/:(.*?);/);
      let mime = (array && array.length > 1 ? array[1] : type) || type;
      // 去掉url的头,并转化为byte
      let bytes = window.atob(arr[1]);
      // 处理异常,将ascii码小于0的转换为大于0
      let ab = new ArrayBuffer(bytes.length);
      // 生成视图(直接针对内存):8位无符号整数,长度1个字节
      let ia = new Uint8Array(ab);
      for (let i = 0; i < bytes.length; i++) {
        ia[i] = bytes.charCodeAt(i);
      }
      return new Blob([ab], {
        type: mime
      });
    },
     let blob = this.base64ToBlob(data, "mp3");
       this.url = window.URL.createObjectURL(blob);
       在把url放到auido中的src即可

在微信小程序中

//需要用到微信原生接口
const fs=wx.getFileSystemManager();
let paths=`${wx.env.USER_DATA_PATH}/${歌名}.mp3`;
fs.writefileSync(paths,"歌曲base64",'base64');
然后在把paths赋值给innerAudioContext.src。
即可