JavaScript 错误:未捕获(在 promise 中) DOMException:play() 请求被调用 pause() 中断

JavaScript Error: Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause()

提问人:gabri987 提问时间:5/6/2023 最后编辑:somethingheregabri987 更新时间:5/6/2023 访问量:162

问:

我需要有关此 javascript 代码的一些帮助: 这是页面报告的错误:。 这是与它相关的 js 代码部分:Uncaught (in promise) DOMException: The play() request was interrupted by a call to pause()

milano.onmouseover = VideoS;
milano.onmouseout = VideoF;
parigi.onmouseover = VideoS;
parigi.onmouseout = VideoF;
ny.onmouseover = VideoS;
ny.onmouseout = VideoF;
londra.onmouseover = VideoS;
londra.onmouseout = VideoF;
function VideoS() {
    switch (this.id) {
        case 'milano':
            video3.play();
            break
        case 'parigi':
            video4.play();
            break
        case 'ny':
            video5.play();
            break
        case 'londra':
            video6.play();
    }
}
function VideoF() {
    switch (this.id) {
        case 'milano':
            video3.pause();
            video3.currentTime = 0;
            break
        case 'parigi':
            video4.pause();
            video4.currentTime = 0;
            break
        case 'ny':
            video5.pause();
            video5.currentTime = 0;
            break
        case 'londra':
            video6.pause();
            video6.currentTime = 0;
    }
}

这些功能可以完美运行并执行它们应该做的事情,但是当我浏览这些包含视频的 div 时出现的错误,我希望没有办法修复它?我注意到,通过将 onmouseover 替换为 onclick 不会出现错误,但我想保持 onmouseover 的交互性

JavaScript HTML 语法错误

评论

0赞 somethinghere 5/6/2023
错误非常清楚,pause() 是在请求 play() 时调用的,但尚未完成。从某种意义上说,这是一个错误,请求必须终止,但不应该成为代码正常运行的障碍。play()
0赞 gabri987 5/7/2023
谢谢我会看到那些链接那不勒斯是一个击球手的名字XD

答:

0赞 Wahlstrommm 5/6/2023 #1

您可以通过在调用之前检查视频是否已经在播放来修复它。play()

function VideoS() {
    switch (this.id) {
        case 'milano':
            if (video3.paused) {
                video3.play();
            }
            break;
        case 'parigi':
            if (video4.paused) {
                video4.play();
            }
            break;
        case 'ny':
            if (video5.paused) {
                video5.play();
            }
            break;
        case 'londra':
            if (video6.paused) {
                video6.play();
            }
            break;
    }
}

评论

0赞 gabri987 5/7/2023
仍然不起作用,我什至尝试使用变量“check”,该变量在视频暂停时变为 false,在视频播放时变为 true,并且 if 喜欢 if(check == true){ video4.play(); 但我真的没有 dk