本地临时文件开发工具和真机地址不一样
发布于 5 年前 作者 juanma 15747 次浏览 来自 问答

比如使用下载接口downloadFile下载mp3资源文件或录音,开发工具临时文件地址格式是http协议,mpeg后缀,到了真机上变成了wxfile协议。这个导致如音频播放接口playVoice、playBackgroundAudio等在开发工具中可以正常播放,到了真机上就播放不了。

可是,我是按照官方案例代码编写,如:

wx.startRecord({
  success: function(res) {    var tempFilePath = res.tempFilePath
    wx.playVoice({
      filePath: tempFilePath,
      complete: function(){
      }
    })
  }
})

请问这是为啥?有哪里设置不对吗?

9 回复

所以您指的是 wxfile://xxxxxxx.mp3 无法在真机上播放是吗

playVoice 只适用于 录音返回的语音文件。

可以使用音乐播放控制相关的接口

是不是在真机上只要是wxfile协议的音频文件,后缀只有silK下才能播放?如果换成其他就不行?但这个协议下后缀我们开发者又不能控制?如何解决这个问题?

是的,这两者不一样,但您无需对此感到担忧。

我测试用真机是:

vivo X7  Plus

安卓5.1.1

微信目前最新版本

对!

是这个情况

不好意思,请您看下之前的留言回复记录,现在是不管什么播放接口,即使是非playVoice接口,在真机上也无法播放 wxfile://xxxxxxx.mp3 格式的本地临时文件

咋没声了?如果是你们程序兼容问题,或者其他回馈下呢?或者至少跟我回复下,后期什么版本能恢复。又或者我哪里代码不对?

第一种场景:

downloadFile接口在真机上,比如下载mp3文件,获得临时文件是wxfile协议,后缀是mp3,适用播放接口playVoice无法播放。如果用startRecord接口录音完成后回调临时文件是wxfile协议,后缀是silk,playVoice接口能正常播放。

第二种场景:

如果用getRecorderManager进行录音,onStop回调后的临时文件是wxfile协议,后缀是.mp3(因为我设置的format值为mp3),这种场景下各种音频播放接口如playVoice就无法播放。请问怎么解决?

这怎么能让我不感到担忧??

回到顶部