有的时候我们需要在vue中添加音频文件,但是直接将音频文件放置了assets目录下的时候,会发现并不能正常播放,下面是两种常用的配置方法:
方法一、将音频文件放置在static目录中,然后进行调用,如下所示
<audio class="success"
src="/static/audios/do_wrong.mp3">
</audio>
以上这种方式就能够解决这个问题了。
方法二、给项目配置mp3格式的解析器
1、在webpack.base.conf.js中添加加载器,如下
{
test: /\.(mp3)(\?.*)?$/,
loader: 'url-loader',
options: {
name: utils.assetsPath('assets/[name].[hash:7].[ext]')
}
}
2、在vue-loader.conf.js文件为audio的src属性添加转换属性选项,让 vue-loader 知道需要将 audio 的 src 属性的内容转换为模块。
var utils = require('./utils')
var config = require('../config')
var isProduction = process.env.NODE_ENV === 'production'
module.exports = {
loaders: utils.cssLoaders({
sourceMap: isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap,
extract: isProduction
}),
transformToRequire: {
"audio": "src"
}
}
3、添加audio标签,引入资源文件
<audio autoplay="autoplay"
controls="controls"
preload="auto"
src="../assets/allright.mp3">
</audio>
此时的资源文件放置在assets目录下即可。
4、重新启动项目或者打包发布,即可听到声音。
更多细节可以参考:
https://zhuanlan.zhihu.com/p/26038486?refer=think-in-vue