我有一个网页,用户点击按钮,音频开始播放。
<button onclick="playAudio()">Play</button>
但是如果源URL不正确,则会在控制台中打印:
未捕获(在承诺中)NotSupportedError:无法加载,因为未找到支持的来源
var myAudio = new Audio();
myAudio.src = "myAudioSrc (incorrect url)";
function playAudio(){
myAudio.play();
//prints error
}
如果源网址不正确,如何在控制台中阻止此错误消息?
答案 0 :(得分:4)
当您拨打.play()
时,会产生错误,而不是在您指定无效的src
时。要禁止它,如错误所示,您需要catch
.play()
返回的承诺所引发的错误:
var myAudio = new Audio();
myAudio.src = "myAudioSrc (incorrect url)";
console.log('src has been assigned');
myAudio.play()
.catch(() => void 0);
&#13;
因为嵌入式代码段无论如何都不会显示错误,所以这里有一个关于JSFiddle的例子来说明差异:https://jsfiddle.net/smjy5b9u/
答案 1 :(得分:2)
您可以简单地catch
返回的承诺(如果有的话),即使此消息是IMM Chrome的实施过于冗长。
var p = new Audio('foo').play();
// check we actually have a Promise (older browser may not return this)
if(p)
p.catch(function(e){/*silent*/});