如何防止损坏的音频src在控制台中打印错误消息?

Adn*_*oky 0 javascript

我有一个网页,用户单击一个按钮,然后开始播放音频。

<button onclick="playAudio()">Play</button>
Run Code Online (Sandbox Code Playgroud)

但是,如果源URL不正确,它将在控制台中输出:

未捕获(承诺)NotSupportedError:加载失败,因为未找到受支持的源

var myAudio = new Audio();
myAudio.src = "myAudioSrc (incorrect url)";

function playAudio(){
    myAudio.play();
    //prints error
}
Run Code Online (Sandbox Code Playgroud)

如果源URL不正确,如何在控制台中防止此错误消息?

Cer*_*nce 5

该错误是在您调用.play()时生成的,而不是在您分配无效时生成的src。如错误所示,要抑制此错误,您需要对返回catch的promise抛出的错误进行处理.play()

var myAudio = new Audio();
myAudio.src = "myAudioSrc (incorrect url)";
console.log('src has been assigned');
myAudio.play()
  .catch(() => void 0);
Run Code Online (Sandbox Code Playgroud)

因为嵌入的片段无论如何都不会显示错误,所以下面是一个在JSFiddle上的示例来说明区别:https ://jsfiddle.net/smjy5b9u/