我正在尝试加载音频,但出现了两个错误,但是一切都很好,并且信号源是正确的。
错误:
javascript:
this.sound = new Audio();
this.sound.src = 'src/assets/sound/welcome_Rift.mp3';
this.sound.load();
this.sound.play();
文件路径:src / assets / sound / welcome_Rift.mp3
我不知道为什么我会犯这个错误,有人可以帮助我吗?
答案 0 :(得分:0)
获取http:// localhost:4200 / src / assets / sound / welcome_Rift.mp3 404(未找到)
404
错误表示未找到您的媒体文件。那可能是很多事情。如果路径正确,则可能是不知道src/assets/sound/welcome_Rift.mp3
指向何处的localhost服务器。最好检查一下src/welcome_Rift.mp3
中的文件是否可以正常工作以查看问题所在。
DOMException:由于找不到受支持的源而无法加载。
这是因为HTMLMediaElement.play()
返回了Promise
。它说Uncaught in promise
的部分意味着promise无法处理错误,应使用catch()
方法向其添加一些promise逻辑。此方法使您可以在发生错误时执行某些操作。
this.sound = new Audio();
this.sound.src = 'src/assets/sound/welcome_Rift.mp3';
this.sound.load();
this.sound.play()
.then(() => {
// Audio is playing.
})
.catch(error => {
console.log(error);
});
较旧的浏览器在执行play()
时可能不会返回Promise,因此在这种情况下,您应该检查它是否返回Promise。
this.sound = new Audio();
this.sound.src = 'src/assets/sound/welcome_Rift.mp3';
this.sound.load();
const promise = this.sound.play();
if (promise !== undefined) { // On older browsers play() does not return anything, so the value would be undefined.
promise
.then(() => {
// Audio is playing.
})
.catch(error => {
console.log(error);
});
}