- readdirSync报indexOf错误
[图片] 以下是代码块,不知何原因总是报 indexOf undefined 好长时间了,求解,谢谢啦 downloadlist: function (options) { var _this = this var FileSystemManager = wx.getFileSystemManager();//声明文件管理器 var paths = wx.env.USER_DATA_PATH; try { var downloadlist = FileSystemManager.readdirSync(paths) if (downloadlist.length >= 1) { if (downloadlist.length == 1 && downloadlist[0] == "miniprogramLog") { _this.setData({ hidden: true, load: false }) } else { var newFilenameArr = [] for (var i = 0; i < downloadlist.length; i++) { var filename = downloadlist[i] var extensionarr = filename.split("."); var filenamearr = extensionarr[0].split("_"); switch (filenamearr[0]) { case 'level1': var level = "预备级上"; break; case 'level2': var level = "预备级下"; break; case 'level3': var level = "一级上"; break; case 'level4': var level = "一级下"; break; case 'level5': var level = "二级上"; break; case 'level6': var level = "二级下"; break; case 'level7': var level = "三级上"; break; case 'level8': var level = "三级下"; break; } var filename = filenamearr[0] + '_' + filenamearr[1] + '_' + filenamearr[2] + '.' + extensionarr[1] var idsting = filenamearr[0] + '_' + filenamearr[1] + '_' + filenamearr[2] if (filenamearr[0] && filenamearr[1] && filenamearr[2] && filenamearr[0] !== 'miniprogramLog' && filenamearr[1] !== 'miniprogramLog' && filenamearr[2] !== 'miniprogramLog') { var newarray = { level: level, unit: filenamearr[1], part: filenamearr[2], filePath: wx.env.USER_DATA_PATH + '/' + filenamearr[0] + '_' + filenamearr[1] + '_' + filenamearr[2] + '.' + extensionarr[1], idsting: idsting, isTouchMove: false //默认隐藏删除 } newFilenameArr[i] = newarray } } _this.setData({ downloadlistarr: newFilenameArr, load: false }) } } else { _this.setData({ hidden: true, load: false }) } } catch (e) { console.log(e) } },
2018-12-14 - 音频文件如何缓存到本地,缓存下来的文件格式不是原格式文件,header不起作用
wx.saveFile方法缓存音频文件,文件虽然缓存下来了,但是缓存下来的文件格式发生了变化,原音频文件为MP3为后缀,可是缓存下来的文件是html为后缀,无法播放,设置完header也不起作用,还请大神帮忙看一下,附上代码 downloadFromServer: function () { var _this = this; const downloadTask = wx.downloadFile({ url: app.globalData.InterfaceUrl + '/media/mp3/one_one.mp3', header: { "Content-Type": "audio/mp3", }, success: function (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() // 取消下载任务 },
2018-09-10 - 音频文件如何缓存到本地,和播放缓存到本地的音频文件
现我司需要在小程序内制作一个音频播放器,并可以实现下载到本地,以及播放下载后的本地音频文件,我查阅小程序关于音频文件的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() // 取消下载任务 }, [图片]
2018-09-06