尝试使用 Vue.js 播放 mp3
Trying to play mp3 using Vue.js
目标:
- 尝试使用具有播放暂停状态的本地文件向我的项目添加背景声音。
加载外部 URL 文件似乎正常,plays/pauses 正常,但本地文件不行。
问题:
- 此外,URL http://....mp3 文件播放而我的本地文件不播放的确切原因是什么?
问题:
- 网络状态为
Status Code: 206 Partial Content
- 控制台错误是
Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().
HTML:
<div class="music-player">
<audio
ref="audio"
preload="auto"
volume="0.1"
muted
loop
>
<source :src="file" />
</audio>
<div @click="toggleSound(file)" class="toggle-sound paused"></div>
</div>
JS:
data: () => ({
...,
file: "/public/audio/bg-music.mp3"
}),
methods: {
toggleSound() {
let audio = this.$refs.audio;
if (
audio.paused &&
document.querySelector(".toggle-sound").classList.contains("paused")
) {
console.log("play it")
audio.play();
document.querySelector(".toggle-sound").classList.remove("paused");
} else {
console.log("pause it")
audio.pause();
document.querySelector(".toggle-sound").classList.add("paused");
}
},
}
我只是将音频 src 添加到 audio
标签,如下所示,它成功了!
<div class="music-player">
<audio
ref="audio"
src="@/assets/audio/bg-music.ogg"
preload
loop
id="audio"
muted
></audio>
<div @click="toggleSound()" class="toggle-sound"></div>
</div>
目标:
- 尝试使用具有播放暂停状态的本地文件向我的项目添加背景声音。
加载外部 URL 文件似乎正常,plays/pauses 正常,但本地文件不行。
问题:
- 此外,URL http://....mp3 文件播放而我的本地文件不播放的确切原因是什么?
问题:
- 网络状态为
Status Code: 206 Partial Content
- 控制台错误是
Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause().
HTML:
<div class="music-player">
<audio
ref="audio"
preload="auto"
volume="0.1"
muted
loop
>
<source :src="file" />
</audio>
<div @click="toggleSound(file)" class="toggle-sound paused"></div>
</div>
JS:
data: () => ({
...,
file: "/public/audio/bg-music.mp3"
}),
methods: {
toggleSound() {
let audio = this.$refs.audio;
if (
audio.paused &&
document.querySelector(".toggle-sound").classList.contains("paused")
) {
console.log("play it")
audio.play();
document.querySelector(".toggle-sound").classList.remove("paused");
} else {
console.log("pause it")
audio.pause();
document.querySelector(".toggle-sound").classList.add("paused");
}
},
}
我只是将音频 src 添加到 audio
标签,如下所示,它成功了!
<div class="music-player">
<audio
ref="audio"
src="@/assets/audio/bg-music.ogg"
preload
loop
id="audio"
muted
></audio>
<div @click="toggleSound()" class="toggle-sound"></div>
</div>