a***@163.com
a***@163.com
  • 发布:2023-04-02 19:21
  • 更新:2023-04-04 19:11
  • 阅读:543

小程序uni.createInnerAudioContext在真机环境不能播放wxfile://开头的文件

分类:uni-app

如图:
线下调试环境生成的url地址是:http://usr/34304988168032262.wav,图中代码可以正常播放
真机环境得到的地址是:wxfile://usr/34304988168032262.wav,图中代码无法播放出声音

2023-04-02 19:21 负责人:无 分享
已邀请:
a***@163.com

a***@163.com (作者)

关注中

a***@163.com

a***@163.com (作者)

问题解决了,原因是手机打开了静音,不过手机静音影响小程序声音这有点扯 啊

星拾夜暝

星拾夜暝

小程序 uni.createInnerAudioContext 在真机环境不能播放 wxfile:// 开头的文件,这是因为在真机环境下,wxfile:// 协议被微信禁止了。

解决方法是使用 uni.getFileSystemManager().getSavedFileList 方法获取本地文件的 filePath,然后使用 uni.createInnerAudioContext() 播放本地文件。示例代码如下:

uni.getFileSystemManager().getSavedFileList({  
  success: res => {  
    if (res.fileList.length) {  
      const filePath = res.fileList[0].filePath  
      const audio = uni.createInnerAudioContext()  
      audio.src = filePath  
      audio.play()  
    }  
  }  
})

这样就可以在真机环境下播放本地音频文件了。需要注意的是,使用该方法播放本地音频文件需要用户先在小程序中保存该音频文件。
注意:
其中一个是使用uni.downloadFile()方法,将wxfile://路径转换成http://或https://路径,然后再进行播放。当然,这个方法需要你的服务器支持https,不过这个问题也可以通过使用uniCloud解决,它提供了一种快速方便地部署https的方法,可以很好地解决这个问题。

要回复问题请先登录注册