Uncaught (in promise) DOMException: The play() request was interrupted by a new load request
我快速切换音频的时候,报以上错误
Uncaught (in promise) DOMException: The play() request was interrupted by a new load request
我快速切换音频的时候,报以上错误
按我的经验如果直接调用以下代码会报你说的错误:
var audio = new Audio();
audio.src = "audio.mp3";
audio.play();
audio.load();
可以这样写来解决:
HTMLAudioElement.prototype._play = HTMLAudioElement.prototype.play;
HTMLAudioElement.prototype._load = HTMLAudioElement.prototype.load;
HTMLAudioElement.prototype.play = function() {
// 禁止load操作
this._lockLoad = true;
this._play();
}
HTMLAudioElement.prototype.load = function() {
this._lockLoad || this._load();
}
var audio = new Audio();
audio.src = "audio.mp3";
audio.play();
audio.load();
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
这个play(播放)操作是一个promise,它要等媒体加载到一定程度后才会播放(resolve)。所以你快速切换这个promise就抛错了