gpt4 book ai didi

javascript - currentTime 属性在 Chrome 中不起作用

转载 作者:行者123 更新时间:2023-12-03 10:04:21 25 4
gpt4 key购买 nike

我想通过像this website(Apple Macbook)这样滚动来显示视频的特定帧。设置 currentTime 属性似乎在 Firefox 和 Safari 中有效,但在 Chrome 中不起作用。我认为 Chrome 添加事件监听器的事件类型“loadedmetadata”是错误的。代码如下。

HTML 和 JS

(function(document) {
var video;
$(function() {
init();
});

function init() {
video = document.getElementById('myVideo');
video.addEventListener('loadedmetadata', function() {
setClick();
setScroll();
});
}

function setClick() {
$('#myButton').on('click', function() {
video.currentTime = 2;
});
}

function setScroll() {
$(window).on('scroll', setFrame);
}

function setFrame() {
var pos = $(window).scrollTop();
console.log(pos);
video.currentTime = pos/5;
}

})(document);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>funny thing</title>
<link rel="stylesheet" href="main.css">
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="main.js"></script>
</head>
<body>
<button id="myButton">i am button</button>
<video id="myVideo" controls height="800" preload="metadata">
<source src="test.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>
</video>

</body>
</html>

最佳答案

如果您只给它一个有效的网址,那么我在 Chrome 上工作得很好,您的代码段将无法工作,因为 test.mp4 不存在。这是jsfiddle和一个片段:

(function(document) {
var video;
$(function() {
init();
});

function init() {
video = document.getElementById('myVideo');
video.addEventListener('loadedmetadata', function() {
setClick();
setScroll();
});
}

function setClick() {
$('#myButton').on('click', function() {
video.currentTime = 2;
});
}

function setScroll() {
$(window).on('scroll', setFrame);
}

function setFrame() {
var pos = $(window).scrollTop();
console.log(pos);
video.currentTime = pos/5;
}

})(document);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>funny thing</title>
<link rel="stylesheet" href="main.css">
<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="main.js"></script>
</head>
<body>
<button id="myButton">i am button</button>
<video id="myVideo" controls height="200" preload="metadata">
<source src="http://techslides.com/demos/sample-videos/small.mp4" type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>
</video>

</body>
</html>

关于javascript - currentTime 属性在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30430695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com