Partial Upload-202212200252

This commit is contained in:
Starlight-0208 2022-12-20 02:52:32 +08:00
parent b58d659c89
commit 9b5baa63f5

View File

@ -1,7 +1,6 @@
window.onload = function(){
createlist();
InitPlayMode();
checkplayInterval = setInterval(checkplay, 3000);
}
// Title Controller
@ -100,6 +99,93 @@ class TitleStat{
}
}
class PlayerControl{
constructor() {
}
playerObject = document.getElementById('Player');
ListenerStatus = false;
// 创建事件监听器
enableListener( func ) {
this.playerObject.addEventListener('ended', func());
this.ListenerStatus = true;
console.log("启用播放器播放结束事件监听");
}
// 移除事件监听器
disableListener( func ) {
this.playerObject.removeEventListener('ended', func());
this.ListenerStatus = false;
console.log("停用播放器播放结束事件监听");
}
// 获取监听器状态
getListenerStatus() {
return this.ListenerStatus;
}
/* 默认函数 */
// 播放状态检测
playStatCheck(){
// 是否单曲?
if ( CyclePlayMode == 2 ){
// 从头开始
this.playerObject.play();
console.log("洗脑的单曲循环!");
}
// 播放到列表尾部检查播放状态是否为0单次播放列表
if ( nowPlay >= (list.size() + 1) ) {
if (CyclePlayMode == 0) {
if( this.ListenerStatus ) {
// 播放列表完毕就清除事件监听器
this.disableListener(this.playStatCheck());
console.log("播放完毕,已清除事件监听。");
} else {
// 事件监听器未打开
console.error("关闭失败,事件监听器未启用。");
}
}
}
// 切歌
playnext();
// 确认当前播放模式
// switch ( CyclePlayMode ){
// case 0: // 列表播放(仅一次)
// if ( nowPlay >= (list.size() + 1) ) {
// if( this.ListenerStatus ) {
// // 播放列表完毕就清除事件监听器
// this.disableListener(this.playStatCheck());
// console.log("播放完毕,已清除事件监听。");
// } else {
// // 事件监听器未打开
// console.error("关闭失败,事件监听器未启用。");
// }
// }
// break;
// case 1: // 列表循环
// if ( !this.ListenerStatus ) {
// // 如果未启用监听器,则启用
// this.enableListener(this.playStatCheck());
// console.log("启用列表,已清除事件监听。")
// }
// break;
// case 2: // 单曲循环
// // 持续不断的从头开始
// this.playerObject.play();
// break;
// default:
// // 缺省值
// console.error("模式错误疑似bug或者JS已被修改请注意")
// break;
// }
}
}
// Title Control
// var originTitle = document.title;
let TitleControl = new TitleStat(document.title);
@ -347,8 +433,7 @@ function processCyclePlay(){
switch ( CyclePlayMode ){
case 0: // OFF
if ( nowPlay >= (list.size() - 1) ) {
clearInterval(checkplayInterval);
console.log("顺序播放已完成,已清除播放状态监听。");
}
break;
case 1: // single cycle
@ -363,21 +448,6 @@ function processCyclePlay(){
}
}
// 检测是否播放完毕
function checkplay(){
// 为了防止播放列表结束以后一直调用playnext产生过多的alart所以需要检测播放列表是否为空
if(!list.isEmpty()){
if(document.getElementById("Player").ended){
// 播放完毕后自动播放下一首
playnext();
}
}else{
//clearInterval(checkplay);
console.log("播放列表为空,已清除播放状态监听。");
clearInterval(checkplayInterval)
}
}
// 播放列表
function playthelist(){
if(list.isEmpty()){