手机上利用downloadFile下载服务器端一个音频文件,代码如下:
wx.downloadFile({ url: 'http://autotest.car580.com/blackmusic.mp3', success: function (res) { console.log('背景音乐下载完成', res) that.setData({ backauto: res.tempFilePath, backautoText: "背景音乐下载完成" }) } }) |
然后使用getBackgroundAudioManager接口播放downloadFile接口所创建的本地临时资源文件(路径),代码如下:
const backgroundAudioManager = wx.getBackgroundAudioManager() |
var that =this backgroundAudioManager.src = that.data.backauto console.log('播放音乐', that.data.backauto) |
在PC端开发工具自带模拟器上能正常播放音乐,调试器能看到console.log('播放音乐', that.data.backauto)记录的日志。到到了真机上,播放音乐时提示通过如下代码:
backgroundAudioManager.onError((res)=>{ console.log(res)}) |
反馈的结果:
errCode:10001errMsg:"errCode:500,err:error URL format"src:"wxfile://tmp_a9ilkasiuoqkwerqi9087934795234985234jqjrkjkdfa.mp3" |
之前使用playVoice接口和playBackgroundAudio接口真机上甚至没有反应,不执行接口代码。
并且我录音完成后播放录音的内容,以上提到的接口在真机上都没有反应,无法播放录音文件。
测试真机:vivo X7 Plus,微信目前最新版本6.5.16,基础库版本1.6.0。
能不能文档详细点,不要那么多坑啊?具体有什么解决方案吗?

求官方回答。不要沉默了
我和你一样的需求,一样的代码但是也是无法实现,我的手机型号是小米6,。
希望官方技术能给个方案。
以上代码在开发工具完美执行,没有任何错误。到了真机上就不行行了。同时我也发现开发工具上执行和真机上执行的不同点。
开发工具上,downloadFile接口下载的mp3文件到本地,创建临时文件路径,后缀是mpeg,如下:
http://tmp/wx21b0454e406c6b1b.o6zAJs9LOTfVyToZ8qOdQql2dV-E.351c9423d15078401d16f71e468003c1.mpeggetBackgroundAudioManager接口能播放,但到了真机上后缀变成了mp3,就不能播放。
提示"errCode:500,err:error URL format"错误。
然后录音接口不论开发工具还是真机,录音完成后回调的临时文件路径后缀都是mp3,开发工具能正常播放录音文件,手机上就不行,提示"errCode:500,err:error URL format"错误。
完成代码如下:
js
//index.js//获取应用实例const app = getApp()const recorderManager = wx.getRecorderManager()const backgroundAudioManager = wx.getBackgroundAudioManager()const innerAudioContext = wx.createInnerAudioContext()const options = {duration: 600000,sampleRate: 44100,numberOfChannels: 1,encodeBitRate: 192000,format:'mp3'}recorderManager.onStart(() => {console.log('recorder start')})recorderManager.onStop((res) => {console.log('recorder stop', res)backgroundAudioManager.stop()innerAudioContext.src = res.tempFilePathinnerAudioContext.play()})backgroundAudioManager.onPlay(()=>{console.log('播放音乐')})backgroundAudioManager.onError((res)=>{console.log(res)})innerAudioContext.onError((res) => {console.log(res)})innerAudioContext.onPlay(() => {console.log('播放路in个音乐')})Page({data: {autoname:"测试录音合成背景音乐",backauto:'',backautoText:''},//事件处理函数default1:function(){varthat =thisbackgroundAudioManager.src = that.data.backauto//开始录音recorderManager.start(options);},default2:function(){//结束录音recorderManager.stop()backgroundAudioManager.stop()},default3:function(){varthat =thisbackgroundAudioManager.src = that.data.backautoconsole.log('播放音乐', that.data.backauto)// wx.playBackgroundAudio({// dataUrl: that.data.backauto,// success: function () {// console.log('播放音乐', that.data.backauto)// }// })},default4:function() {backgroundAudioManager.stop()},onLoad:function() {varthat =thisif(wx.createInnerAudioContext && wx.getRecorderManager() && wx.getBackgroundAudioManager()) {wx.showModal({title:'提示',content:'支持目前最新播放录音组件'})}else{//如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示wx.showModal({title:'提示',content:'当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'})}wx.downloadFile({url:'http://autotest.car580.com/blackmusic.mp3',success:function(res) {console.log('背景音乐下载完成', res)that.setData({backauto: res.tempFilePath,backautoText:"背景音乐下载完成"})}})}})html
<!--index.wxml--><viewclass="container"><viewclass="section"><viewclass="section__title">{{backautoText}}</view><buttontype="default"size="{{defaultSize}}"loading="{{loading}}"plain="{{plain}}"disabled="{{disabled}}"bindtap="default1"hover-class="other-button-hover"style="margin-bottom:15px;"> 开始录音 </button><buttontype="default"size="{{defaultSize}}"loading="{{loading}}"plain="{{plain}}"disabled="{{disabled}}"bindtap="default2"hover-class="other-button-hover"> 暂停录音 </button><buttontype="default"size="{{defaultSize}}"loading="{{loading}}"plain="{{plain}}"disabled="{{disabled}}"bindtap="default3"hover-class="other-button-hover"> 播放音乐 </button><buttontype="default"size="{{defaultSize}}"loading="{{loading}}"plain="{{plain}}"disabled="{{disabled}}"bindtap="default4"hover-class="other-button-hover"> 停止播放 </button></view></view>