Fix video player initialization and improve video container styling
ci/woodpecker/push/woodpecker Pipeline failed
Details
ci/woodpecker/push/woodpecker Pipeline failed
Details
This commit is contained in:
parent
70cf8bf47b
commit
89cda52027
|
@ -10,10 +10,19 @@
|
||||||
/* Ensure the video-js player is properly contained */
|
/* Ensure the video-js player is properly contained */
|
||||||
.video-js {
|
.video-js {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: 0 !important;
|
||||||
|
padding-top: 56.25% !important; /* 16:9 aspect ratio */
|
||||||
/* Ensure controls are within the container */
|
/* Ensure controls are within the container */
|
||||||
position: relative;
|
position: relative;
|
||||||
aspect-ratio: 16/9;
|
}
|
||||||
|
|
||||||
|
/* Position the video element correctly */
|
||||||
|
.video-js .vjs-tech {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fix control bar positioning */
|
/* Fix control bar positioning */
|
||||||
|
@ -25,11 +34,6 @@
|
||||||
|
|
||||||
/* Additional responsive adjustments */
|
/* Additional responsive adjustments */
|
||||||
@media (max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
.video-js {
|
|
||||||
/* Ensure the video fits on smaller screens */
|
|
||||||
max-height: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.video-container {
|
.video-container {
|
||||||
/* More bottom space on mobile */
|
/* More bottom space on mobile */
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
|
|
|
@ -1 +1,37 @@
|
||||||
document.addEventListener("DOMContentLoaded",function(){const e=document.querySelectorAll("video:not(.video-js)");e.length&&e.forEach(function(e){const t=e.id||"video-"+Math.floor(1e6*Math.random());e.id=t,e.classList.add("video-js"),e.classList.add("vjs-big-play-centered"),videojs(t,{controls:!0,autoplay:!1,preload:"auto"})});const t=document.querySelectorAll("video.video-js");t.forEach(function(e){const t=e.id;t&&!videojs.getPlayers()[t]&&videojs(t)})});
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
// Initialize non-video-js videos
|
||||||
|
const nonVideoJsVideos = document.querySelectorAll("video:not(.video-js)");
|
||||||
|
if (nonVideoJsVideos.length) {
|
||||||
|
nonVideoJsVideos.forEach(function(video) {
|
||||||
|
const videoId = video.id || "video-" + Math.floor(Math.random() * 1000000);
|
||||||
|
video.id = videoId;
|
||||||
|
video.classList.add("video-js");
|
||||||
|
video.classList.add("vjs-big-play-centered");
|
||||||
|
// Check if player is already initialized
|
||||||
|
if (!videojs.getPlayers()[videoId]) {
|
||||||
|
videojs(videoId, {
|
||||||
|
controls: true,
|
||||||
|
autoplay: false,
|
||||||
|
preload: "auto"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize video-js videos that don't have data-setup attribute
|
||||||
|
const videoJsVideos = document.querySelectorAll("video.video-js:not([data-setup])");
|
||||||
|
videoJsVideos.forEach(function(video) {
|
||||||
|
const videoId = video.id;
|
||||||
|
// Check if player is already initialized
|
||||||
|
if (videoId && !videojs.getPlayers()[videoId]) {
|
||||||
|
videojs(videoId, {
|
||||||
|
controls: true,
|
||||||
|
autoplay: false,
|
||||||
|
preload: "auto"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Don't re-initialize videos that already have data-setup attribute
|
||||||
|
// as they will be automatically initialized by Video.js
|
||||||
|
});
|
|
@ -35,6 +35,19 @@
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.video-js {
|
||||||
|
width: 100%;
|
||||||
|
height: 0 !important;
|
||||||
|
padding-top: 56.25% !important; /* 16:9 aspect ratio */
|
||||||
|
}
|
||||||
|
.video-js .vjs-tech {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
.video-title {
|
.video-title {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -90,7 +103,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="video-container">
|
<div class="video-container">
|
||||||
<video id="video1" class="video-js vjs-big-play-centered" controls preload="auto" width="100%" height="auto" poster="/static/videos/posters/video1.webp" data-setup="{}">
|
<video id="video1" class="video-js vjs-big-play-centered" controls preload="auto" width="100%" height="auto" poster="/static/videos/posters/video1.webp">
|
||||||
<source src="/static/videos/hls/video1/master.m3u8" type="application/x-mpegurl">
|
<source src="/static/videos/hls/video1/master.m3u8" type="application/x-mpegurl">
|
||||||
<source src="/static/videos/video1.mp4" type="video/mp4">
|
<source src="/static/videos/video1.mp4" type="video/mp4">
|
||||||
<p>To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
|
<p>To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
|
||||||
|
|
|
@ -35,6 +35,19 @@
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.video-js {
|
||||||
|
width: 100%;
|
||||||
|
height: 0 !important;
|
||||||
|
padding-top: 56.25% !important; /* 16:9 aspect ratio */
|
||||||
|
}
|
||||||
|
.video-js .vjs-tech {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
.video-title {
|
.video-title {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -90,7 +103,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="video-container">
|
<div class="video-container">
|
||||||
<video id="video2" class="video-js vjs-big-play-centered" controls preload="auto" width="100%" height="auto" poster="/static/videos/posters/video2.webp" data-setup="{}">
|
<video id="video2" class="video-js vjs-big-play-centered" controls preload="auto" width="100%" height="auto" poster="/static/videos/posters/video2.webp">
|
||||||
<source src="/static/videos/hls/video2/master.m3u8" type="application/x-mpegurl">
|
<source src="/static/videos/hls/video2/master.m3u8" type="application/x-mpegurl">
|
||||||
<source src="/static/videos/video2.mp4" type="video/mp4">
|
<source src="/static/videos/video2.mp4" type="video/mp4">
|
||||||
<p>To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
|
<p>To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
|
||||||
|
|
|
@ -35,6 +35,19 @@
|
||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.video-js {
|
||||||
|
width: 100%;
|
||||||
|
height: 0 !important;
|
||||||
|
padding-top: 56.25% !important; /* 16:9 aspect ratio */
|
||||||
|
}
|
||||||
|
.video-js .vjs-tech {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
.video-title {
|
.video-title {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -90,7 +103,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="video-container">
|
<div class="video-container">
|
||||||
<video id="video3" class="video-js vjs-big-play-centered" controls preload="auto" width="100%" height="auto" poster="/static/videos/posters/video3.webp" data-setup="{}">
|
<video id="video3" class="video-js vjs-big-play-centered" controls preload="auto" width="100%" height="auto" poster="/static/videos/posters/video3.webp">
|
||||||
<source src="/static/videos/hls/video3/master.m3u8" type="application/x-mpegurl">
|
<source src="/static/videos/hls/video3/master.m3u8" type="application/x-mpegurl">
|
||||||
<source src="/static/videos/video3.mp4" type="video/mp4">
|
<source src="/static/videos/video3.mp4" type="video/mp4">
|
||||||
<p>To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
|
<p>To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
|
||||||
|
|
Loading…
Reference in New Issue