我想在滚动时播放视频。无论如何,我实现了向前播放,但当我向后滚动时,视频不向后播放,而是向前播放。
下面是我的代码:
//getting video element
var v = $("#v");
// calling function on scroll
$("#video-wrapper").on('mousewheel','#v',function(){
var playVideoByScrollv = new PlayVideoByScrollv(v);
});
var PlayVideoByScrollv = function(video,e){
var evt=window.event || e //equalize event object
//delta returns +120 when wheel is scrolled up, -120 when scrolled down
var delta = evt.detail ? evt.detail*(-120) : evt.wheelDelta
if(delta<=-120){
video.currentTime += (1 / 24);
video[0].play();
setTimeout(function(){
video[0].pause();
},40);
}
else{
video.currentTime -= (1 / 24);
video[0].play();
setTimeout(function(){
video[0].pause();
},40);
}
if (evt.preventDefault) //disable default wheel action of scrolling page
evt.preventDefault()
else
return false
}
谁能告诉我,我错在哪里?”
2条答案
按热度按时间eqfvzcg81#
我认为您的代码将当前时间设置为未来的新时间(向前滚动时)和过去的新时间(向后滚动时)。在这两种情况下,它将开始正常播放视频(即向前)。
如果你想实际上播放视频倒退,你可能会发现这是一个相当大的问题,因为大多数编码技术假设播放前进-例如,第9帧可能是通过采取第6帧,并添加一些信息,从第7帧和第8帧第一,然后信息的第9帧。
对于流媒体视频,这甚至是一个更大的问题,因为流几乎都将被设置为只向前播放。
有一些方法(见以下网址的答案:Is it possible to play HTML5 video in reverse?)但我怀疑这些中是否有一个是你要找的。
pdkcd3nj2#
我不知道你想存档什么,我想你想通过上下滚动来控制视频。
我在Youtube上找到了一个视频,关于如何通过滚动来构建视频控件。你可能会感兴趣:https://www.youtube.com/watch?v=HiegEfkenXA
下面是我做的一个简单的代码片段: