function PlaybackStateManager({ interval = 1000, onChange } = {}) {
let lastTime = 0;
let lastState = 'unknown';
let timer = null;
function getState() {
const video = document.querySelector('video');
if (video) {
const advancing = video.currentTime > lastTime;
lastTime = video.currentTime;
if (video.ended) return 'ended';
if (video.paused) return 'paused';
if (advancing && video.readyState >= 3) return 'playing';
return 'buffering';
}
const btn = document.querySelector('.tv-play-btn, .play-icon, .pause-icon');
if (btn) {
const cls = btn.className;
if (/pause/.test(cls)) return 'playing';
if (/play/.test(cls)) return 'paused';
}
const loadingText = document.body.textContent;
if (loadingText.includes('全力加载中')) return 'loading';
return 'unknown';
}
function start() {
timer = setInterval(() => {
const state = getState();
if (state !== lastState) {
lastState = state;
if (typeof onChange === 'function') onChange(state);
}
}, interval);
}
function stop() {
if (timer) clearInterval(timer);
timer = null;
}
return {
start,
stop,
getState: () => lastState,
};
}
const manager = PlaybackStateManager({
interval: 1500,
onChange: (state) => {
console.log('播放状态变化:', state);
// 可在此触发自动点击、截图、日志记录等操作
},
});
manager.start();
// 随时获取当前状态
console.log('当前状态:', manager.getState());
// 停止监控
// manager.stop();