uniapp的微信播放不支持本地文件,起始微信原生语言是支持的 所以在编写uniapp代码时 要写两套逻辑 // #ifdef MP-WEIXIN 微信原封不变的自己写法 //#endif // #ifndef MP-WEIXIN 其他写法 //#endif
这样可实现 发布到微信后 微信原封不动的使用自己写法
注意uniapp的非微信端 如网页 /../../../static/audio/'+name 使用这种方式才能读取播放,就是往上倒目录位置,不倒目录不对,两种方式试剂得到的目录路径效果如下
const url = '/../../../static/audio/'+name
const url = '/static/audio/'+name
编译后得出http://localhost:5173/pages/tabBar/grid/static/audio/ui_click_12.wav编译后得出这样他播放不了
以下是uniapp代码 const play = (name) => {// #ifdef MP-WEIXIN playMusicWEIXIN(name)console.log('微信播放',name)//#endif// #ifndef MP-WEIXIN const url = '/../../../static/audio/'+nameconsole.log('其他播放 ', url)let music =uni.createInnerAudioContext()music.pause();music.destroy()music = nullmusic = uni.createInnerAudioContext();music.autoplay = true;music.src =url ;music.onPlay(() => {console.log('开始播放');});music.onError((res) => {if(res){console.log(res.errMsg);console.log(res.errCode);}});//#endif}function playMusicWEIXIN(name) {let music = wx.createInnerAudioContext({useWebAudioImplement: false // 是否使用 WebAudio 作为底层音频驱动,默认关闭。对于短音频、播放频繁的音频建议开启此选项,开启后将获得更优的性能表现。由于开启此选项后也会带来一定的内存增长,因此对于长音频建议关闭此选项})music.autoplay = falsemusic.tilte = 'boom.mp3'music.src = '/static/audio/' + namemusic.onPlay(() => {console.log('开始播放:' + name)})music.onError((res) => {console.log('播放errMsg:' + res.errMsg)console.log('播放errMsg:' + res.errCode)})music.onEnded((res) => {console.log('销毁:')music.destroy()})music.play()}