vue音频文件在本地可以播放,打包上线以后播放不了

  • Post author:
  • Post category:vue


<audio id="errAudio">
    <source :src="require('../../assets/audio/scan_err.wav')" />
</audio>

通过require引入本地的音频文件,通过调用play()方法实现播放

let mp3 = document.getElementById('errAudio');
mp3.play()

出现在本地可以正常播放音频文件,但是打包上线以后,没有声音,在控制台Network里查看资源加载的路径发现是 undefined

解决方法:直接通过js调用线上的音频路径

let mp3 = document.getElementById('errAudio');
mp3.src = '/dist/media/scan_err.wav';
mp3.play();

此方法可以解决线上播放不了的问题,但是不是根本解决方案

更新:

根本问题:因为vue.config.js里面的

 publicPath: '/'

更改为

 publicPath: './',

如果实在更改不了又要使用动态导入的方法:

let mp3 = document.getElementById('errAudio');
mp3.src = `/dist${require('@/assets/audio/scan_err.wav')}`;
mp3.play();

这样的话缺点是,本地音频没有声音,线上可以正常播放



版权声明:本文为weixin_46194350原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。