javascript - 选择另一张幻灯片后如何暂停视频(Slick.js 和 VideoJS)
问题描述
我正在尝试与轮播一起制作视频播放器,当您单击单个轮播幻灯片时,所需的视频会打开并播放。但是,我的问题是,一旦视频正在播放并且您转到下一张幻灯片,视频仍然在播放。我尝试使用此解决方案Slick slider 在幻灯片更改时暂停 youtube 视频,虽然它确实可以工作,但一旦视频停止,然后您回到暂停的同一视频,您将无法再次播放或与之交互完全没有,我该如何解决?
HTML
<div class='col videoCarouselMain'>
<div class='videoCarouselMainItem'>
<video id='storyVideo' class='video-js vjs-default-skin' controls width='700px' height='600px' data-setup='{}'>
<source src='./assets/video.mp4' type='video/mp4'>
</video>
</div>
<div class='videoCarouselMainItem'>
<video id='storyVideo' class='video-js vjs-default-skin' controls width='700px' height='600px' data-setup='{}'>
<source src='./assets/video2.mp4' type='video/mp4'>
</video>
</div>
<div class='videoCarouselMainItem'>
<video id='storyVideo' class='video-js vjs-default-skin' controls width='700px' height='600px' data-setup='{}'>
<source src='./assets/video.mp4' type='video/mp4'>
</video>
</div>
<div class='videoCarouselMainItem'>
<video id='storyVideo' class='video-js vjs-default-skin' controls width='700px' height='600px' data-setup='{}'>
<source src='./assets/video.mp4' type='video/mp4'>
</video>
</div>
</div>
<div class='col videoCarousel'>
<div class='videoCarouselItem'>
<img class='fluid' src='assets/videoPoster.jpg'>
</div>
<div class='videoCarouselItem'>
<img class='fluid' src='assets/poster2.jpg'>
</div>
<div class='videoCarouselItem'>
<img class='fluid' src='assets/videoPoster.jpg'>
</div>
<div class='videoCarouselItem'>
<img class='fluid' src='assets/videoPoster.jpg'>
</div>
</div>
JS
$('.videoCarouselMain').slick({
slidesToShow: 1,
slidesToScroll: 1,
arrows: false,
fade: true,
asNavFor: '.videoCarousel'
});
$('.videoCarousel').slick({
slidesToShow: 3,
slidesToScroll: 1,
asNavFor: '.videoCarouselMain',
dots: true,
centerMode: true,
focusOnSelect: true
});
$('.videoCarouselMain').on('beforeChange', function(event, slick, currentSlide, nextSlide){
var current = $(slick.$slides[currentSlide]);
current.html(current.html());
});
解决方案
这是一个正确的脚本。
.on(
"beforeChange",
function (event, slick, currentSlide, nextSlide) {
$(".slick-current video").attr(
"src",
$(".slick-current video").attr("src")
);
$(".slick-current .video-js").removeClass("vjs-playing");
}
);
推荐阅读
- ruby - Ruby:捆绑不与 rbenv 一起使用(路径名包含空字节(ArgumentError)
- java - java - 如何将hashmap值传递给java中的模型类构造函数
- php - 如何检查Mysql表中是否存在记录
- r - R ggplot geom_raster 增加行高以避免点重叠
- apache-kafka - 当记录从多个源插入源主题时,Kafka 源连接器未按预期提取记录
- spring-boot - Spring boot + tomcat部署+非法循环继承依赖问题
- amazon-web-services - DynamoDB:如何在 GSI 上查询按排序键排序的多个分区键
- php - 我正在使用 Laravel Passport 进行身份验证,那么在从 api 接收承载令牌后如何在我的应用程序中应用身份验证
- coq - 如何使用定义来证明某事?
- dart - 带有右边框的圆角卡片小部件颤动