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