收藏
回答

音频文件如何缓存到本地,和播放缓存到本地的音频文件

现我司需要在小程序内制作一个音频播放器,并可以实现下载到本地,以及播放下载后的本地音频文件,我查阅小程序关于音频文件的API但始终没有找到关于音频下载的这个功能介绍,于是我只能选择按照缓存普通文件的方式缓存音频文件,采用了

wx.saveFile方法缓存音频文件,文件虽然缓存下来了,但是缓存下来的文件格式发生了变化,原音频文件为MP3为后缀,可是缓存下来的文件是html为后缀,无法播放,还请大神帮忙看一下,附上代码

downloadFromServer: function () {

       var _this = this;

       const downloadTask = wx.downloadFile({

           url: app.globalData.InterfaceUrl + '/media/mp3/one_one.mp3', //开启tomcat后的本机ip地址

           success: function (res) {

               //console.log(res)

               wx.saveFile({//对临时资源进行永久保存

                   tempFilePath: res.tempFilePath,//tempFilePath想要保存的文件的临时地址

                   success: function (res) {

                       console.log("保存成功啦")

                       console.log(res)//res是保存成功的返回值,包含存储路径等

                       console.log(res.errMsg)//res是保存成功的返回值,包含存储路径等

                       if (res.errMsg =="saveFile:ok"){

                           _this.setData({

                               hidden:false,

                               downloadSrc: "../../images/on_download.png",

                           })

                       }

                   }

               })

           }

       })

       downloadTask.onProgressUpdate((res) => {

           console.log('下载进度', res.progress)

           this.setData({

               downloadPercent: (res.progress * 100).toFixed(2)//toFixed(2)取小数点后两位,更新wxml中progress组件的进度值

           })

       })


       //downloadTask.abort() // 取消下载任务

   },




回答关注问题邀请回答
收藏

2 个回答

  • ROY
    ROY
    2018-09-07

    具体如何操作呀

    2018-09-07
    赞同
    回复 1
    • children骏
      children骏
      2019-07-15
      想请教下,问题是否已经解决了?以及贵司是如何实现本地缓存音频文件?本地缓存文件有大小限制
      2019-07-15
      回复
  • 昊天 Haotian
    昊天 Haotian
    2018-09-06

    检查一下

    /media/mp3/one_one.mp3

    下载时候的content-type是不是audio/mp3

    因为你是自己的tomcat

    有可能是text/html


    2018-09-06
    赞同
    回复
登录 后发表内容