Javascript 创建音频元素时为什么要尝试捕捉

Javascript 创建音频元素时为什么要尝试捕捉,javascript,jquery,Javascript,Jquery,我刚刚浏览了Jbox插件代码,特别是添加音频的部分,我遇到了以下代码: jBox.prototype.audio = function(options) { options || (options = {}); jBox._audio || (jBox._audio = {}); // URL required, no IE8 support if (!options.url || this.IE8) return this; // Create au

我刚刚浏览了Jbox插件代码,特别是添加音频的部分,我遇到了以下代码:

jBox.prototype.audio = function(options) {
    options || (options = {});
    jBox._audio || (jBox._audio = {});

    // URL required, no IE8 support
    if (!options.url || this.IE8) return this;

    // Create audio if it doesn't exist
    if (!jBox._audio[options.url]) {
        var audio = jQuery('<audio/>');
        jQuery('<source/>', {src: options.url + '.mp3'}).appendTo(audio);
        jQuery('<source/>', {src: options.url + '.ogg'}).appendTo(audio);
        jBox._audio[options.url] = audio[0];
    }
    // Set volume and play audio
    jBox._audio[options.url].volume = Math.min((options.volume != undefined ? options.volume :
  (this.options.volume != undefined ? this.options.volume : 100) / 100), 1);
    jBox._audio[options.url].pause();
    try { jBox._audio[options.url].currentTime = 0; } catch (e) {}
    jBox._audio[options.url].play();

    return this;
};
为什么在这里使用试捕?我理解try-catch的用法,但在这段代码的上下文中,我无法理解它的用法。有人能解释一下吗

我所说的代码行可以找到

来自HTML5规范(我的重点):

设置时,如果媒体元素具有当前媒体控制器,则 用户代理必须抛出InvalidStateError异常;否则,, 如果媒体元素的readyState为HAVE_NOTHING,则必须将其设置为 将媒体元素的默认播放开始位置设置为新值; 否则,它必须将官方播放位置设置为新值 然后寻求新的价值


这是为了处理浏览器还不知道如何更新播放时间的情况。

这将把currentTime返回到0,如果音频还没有启动,它可能没有_audio[option.url],这将导致错误,脚本将停止。相反,即使脚本在该行失败,它也将继续执行.play()。
try { jBox._audio[options.url].currentTime = 0; } catch (e) {}