比如使用下载接口downloadFile下载mp3资源文件或录音,开发工具临时文件地址格式是http协议,mpeg后缀,到了真机上变成了wxfile协议。这个导致如音频播放接口playVoice、playBackgroundAudio等在开发工具中可以正常播放,到了真机上就播放不了。
可是,我是按照官方案例代码编写,如:
wx.startRecord({
success: function(res) { var tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath,
complete: function(){
}
})
}
})
请问这是为啥?有哪里设置不对吗?
playVoice 只适用于 录音返回的语音文件。
可以使用音乐播放控制相关的接口
不好意思,请您看下之前的留言回复记录,现在是不管什么播放接口,即使是非playVoice接口,在真机上也无法播放 wxfile://xxxxxxx.mp3 格式的本地临时文件
咋没声了?如果是你们程序兼容问题,或者其他回馈下呢?或者至少跟我回复下,后期什么版本能恢复。又或者我哪里代码不对?
我测试用真机是:
vivo X7 Plus
安卓5.1.1
微信目前最新版本
对!
是这个情况
所以您指的是 wxfile://xxxxxxx.mp3 无法在真机上播放是吗
是不是在真机上只要是wxfile协议的音频文件,后缀只有silK下才能播放?如果换成其他就不行?但这个协议下后缀我们开发者又不能控制?如何解决这个问题?
第一种场景:
downloadFile接口在真机上,比如下载mp3文件,获得临时文件是wxfile协议,后缀是mp3,适用播放接口playVoice无法播放。如果用startRecord接口录音完成后回调临时文件是wxfile协议,后缀是silk,playVoice接口能正常播放。
第二种场景:
如果用getRecorderManager进行录音,onStop回调后的临时文件是wxfile协议,后缀是.mp3(因为我设置的format值为mp3),这种场景下各种音频播放接口如playVoice就无法播放。请问怎么解决?
这怎么能让我不感到担忧??
是的,这两者不一样,但您无需对此感到担忧。