Merge pull request #13 from lancer-wang/main

feat: Added auto play of next video in player
This commit is contained in:
Levy,Wang 2025-03-18 11:13:52 +08:00 committed by GitHub
commit 79bdecdc89
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 37 additions and 1 deletions

View File

@ -146,6 +146,14 @@
<span class="ml-2 tab-text" data-zh="自动播放" data-en="Auto Play">自动播放</span>
</label>
</div>
<div class="autoplay-toggle flex items-center">
<input type="checkbox" id="autoNextToggle" class="hidden">
<label for="autoNextToggle" class="cursor-pointer flex items-center">
<span class="toggle-switch"></span>
<span class="ml-2 tab-text" data-zh="自动下一个" data-en="Auto Next">自动下一个</span>
</label>
</div>
<button id="nextVideo" class="next-button px-6 py-2">
<span class="tab-text" data-zh="下一个" data-en="Next">下一个</span>
</button>

View File

@ -270,6 +270,7 @@ function showCoverImage(searchTerm) {
// 视频播放功能
let hls = null;
let autoplayEnabled = false;
let autoNextEnabled = false;
// 初始化自动播放设置
function initializeAutoplaySettings() {
@ -287,6 +288,20 @@ function initializeAutoplaySettings() {
}
}
function initializeAutoNextToggle() {
const autoNextToggle = document.getElementById('autoNextToggle');
if (autoNextToggle) {
// 从localStorage读取状态
autoNextEnabled = localStorage.getItem('autoNextEnabled') === 'true';
autoNextToggle.checked = autoNextEnabled;
// 绑定change事件
autoNextToggle.addEventListener('change', (e) => {
autoNextEnabled = e.target.checked;
localStorage.setItem('autoNextEnabled', autoNextEnabled);
});
}
}
// 初始化封面图开关设置
function initializeCoverToggle() {
const coverToggle = document.getElementById('coverToggle');
@ -406,6 +421,11 @@ async function loadVideo() {
videoPlayer.controls = true;
}
});
videoPlayer.addEventListener('ended', ()=> {
if (autoNextEnabled) {
loadVideo()}
;
});
videoPlayer.classList.remove('loading');
notification.classList.remove('show');
@ -434,7 +454,7 @@ document.addEventListener('DOMContentLoaded', () => {
initializeAutoplaySettings();
initializeCopyButton();
initializeCoverToggle();
initializeAutoNextToggle(); // 新增初始化
const nextVideoButton = document.getElementById('nextVideo');
if (nextVideoButton) {
nextVideoButton.addEventListener('click', loadVideo);

View File

@ -1277,6 +1277,14 @@ body.light-theme select option {
transform: translateX(20px);
}
#autoNextToggle:checked + label .toggle-switch {
background-color: var(--primary-color);
}
#autoNextToggle:checked + label .toggle-switch::after {
transform: translateX(20px);
}
/* 适配移动端全屏问题 */
#videoPlayer::-webkit-media-controls {
will-change: transform;