Playlist
ปรับปรุง UI/UX ของระบบโดยใช้ Tailwind CSS ดังนี้:
- โครงสร้างหน้าเว็บ:
- ใช้ flexbox layout เพื่อจัดวาง video player และ playlist ให้อยู่ข้างกันบนหน้าจอขนาดใหญ่ และซ้อนกันบนหน้าจอขนาดเล็ก
- เพิ่ม padding และ margin ให้เหมาะสม เพื่อให้ดูสบายตา
- Video Player:
- ใช้ aspect ratio 16:9 สำหรับ video player เพื่อให้แสดงผลได้อย่างเหมาะสม
- เพิ่ม shadow ให้กับ container เพื่อเน้นความสำคัญ
- ปุ่มควบคุม:
- ใช้สีที่แตกต่างกันสำหรับปุ่มแต่ละประเภท (Auto-Next, Next, Cancel, Mute/Unmute)
- เพิ่ม hover effect ให้กับปุ่มเพื่อเพิ่มการตอบสนอง
- ปรับขนาดและ padding ของปุ่มให้เหมาะสมกับการใช้งาน
- Playlist:
- ใช้ scrollable container สำหรับ playlist items
- เพิ่ม hover effect ให้กับ playlist items
- ใช้สีพื้นหลังที่แตกต่างสำหรับวิดีโอที่กำลังเล่น
- ข้อความสถานะและการนับถอยหลัง:
- ใช้ font size และ color ที่แตกต่างกันเพื่อเน้นความสำคัญของข้อความ
- ซ่อน/แสดง countdown element แทนการใช้ style.display
- Responsive Design:
- ใช้ Tailwind’s responsive classes เพื่อปรับ layout ให้เหมาะสมกับขนาดหน้าจอต่างๆ
- เพิ่มเติม:
- ปรับปรุงการแสดงผลของปุ่ม Auto-Next และ Mute/Unmute โดยเปลี่ยนสีตามสถานะ
การปรับปรุงเหล่านี้ทำให้ UI ดูทันสมัยและใช้งานง่ายขึ้น โดยยังคงฟังก์ชันการทำงานเดิมทั้งหมด
ผมได้ทำการแก้ไขและปรับปรุงโค้ดดังนี้:
- แก้ไขการกำหนดขนาดของ video container:
html
<div class="relative" style="padding-top: 56.25%;">
<iframe id="video-iframe" class="absolute top-0 left-0 w-full h-full" src="" allow="autoplay; fullscreen" playsinline webkit-playsinline></iframe>
</div>การใช้
padding-top: 56.25%
จะทำให้ container มีอัตราส่วน 16:9 ซึ่งเหมาะสมสำหรับวิดีโอส่วนใหญ่ - ปรับปรุงโครงสร้าง responsive:
html
<div class="flex flex-col lg:flex-row">
<div class="lg:w-2/3 p-4">
<!-- Video player -->
</div>
<div class="lg:w-1/3 bg-gray-50 p-4">
<!-- Playlist -->
</div>
</div>ใช้
flex-col
สำหรับหน้าจอขนาดเล็ก และlg:flex-row
สำหรับหน้าจอขนาดใหญ่ - ปรับปรุงขนาดของ playlist container:
html
<div id="playlist-items" class="space-y-2 max-h-96 overflow-y-auto">
กำหนดความสูงสูงสุดและเพิ่ม scroll เมื่อมีรายการมากเกินไป
- ตรวจสอบการโหลดวิดีโอแรก:
javascript
if (video.videoId === featuredVideo.split('|')[1]) {
playlistItem.classList.add('bg-blue-100');
loadVideo(video.videoId);
}ทำให้แน่ใจว่าวิดีโอแรกถูกโหลดเมื่อเริ่มต้น
- เพิ่ม console.log เพื่อตรวจสอบการทำงาน:
javascript
console.log('Video iframe loaded');
console.log('Playing video:', videoId);
การแก้ไขเหล่านี้ควรจะแก้ปัญหาการแสดงผลของวิดีโอและทำให้ layout ของหน้าเว็บเหมาะสมกับทุกขนาดหน้าจอ
ลองทดสอบอีกครั้งและแจ้งให้ผมทราบว่าวิดีโอแสดงผลถูกต้องหรือไม่ครับ หากยังมีปัญหา กรุณาแจ้งรายละเอียดเพิ่มเติม เช่น ข้อความ error ใน console หรือลักษณะของปัญหาที่พบ เพื่อที่ผมจะได้ช่วยแก้ไขได้อย่างตรงจุดครับ