main
parent
2d85d172fc
commit
055f3daf38
@ -1,80 +0,0 @@
|
||||
// 导航高亮
|
||||
document.querySelectorAll('.nav-links a').forEach(link => {
|
||||
link.addEventListener('click', (e) => {
|
||||
document.querySelectorAll('.nav-links a').forEach(a => a.classList.remove('nav-link-active'));
|
||||
e.target.closest('a').classList.add('nav-link-active');
|
||||
});
|
||||
});
|
||||
|
||||
let isSyncEnabled = true;
|
||||
const originalAudio = document.getElementById('originalAudio');
|
||||
const separatedAudio = document.getElementById('separatedAudio');
|
||||
const syncToggle = document.getElementById('syncToggle');
|
||||
const syncStatus = document.getElementById('syncStatus');
|
||||
const originalInfo = document.getElementById('originalInfo');
|
||||
const separatedInfo = document.getElementById('separatedInfo');
|
||||
|
||||
function setupAudioSync() {
|
||||
function syncPlayback(source, target) {
|
||||
source.addEventListener('play', () => {
|
||||
if (isSyncEnabled && target.paused) {
|
||||
target.play().catch(() => {});
|
||||
}
|
||||
});
|
||||
|
||||
source.addEventListener('pause', () => {
|
||||
if (isSyncEnabled) {
|
||||
target.pause();
|
||||
}
|
||||
});
|
||||
|
||||
source.addEventListener('seeked', () => {
|
||||
if (isSyncEnabled && !target.paused) {
|
||||
target.currentTime = source.currentTime;
|
||||
}
|
||||
});
|
||||
|
||||
source.addEventListener('timeupdate', () => {
|
||||
if (isSyncEnabled && !target.paused &&
|
||||
Math.abs(source.currentTime - target.currentTime) > 0.2) {
|
||||
target.currentTime = source.currentTime;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
syncPlayback(originalAudio, separatedAudio);
|
||||
syncPlayback(separatedAudio, originalAudio);
|
||||
}
|
||||
|
||||
function updateAudioInfo() {
|
||||
originalAudio.addEventListener('loadedmetadata', () => {
|
||||
const duration = originalAudio.duration;
|
||||
const minutes = Math.floor(duration / 60);
|
||||
const seconds = Math.floor(duration % 60);
|
||||
originalInfo.textContent = `音频时长: ${minutes}:${seconds.toString().padStart(2, '0')}`;
|
||||
});
|
||||
|
||||
separatedAudio.addEventListener('loadedmetadata', () => {
|
||||
const duration = separatedAudio.duration;
|
||||
const minutes = Math.floor(duration / 60);
|
||||
const seconds = Math.floor(duration % 60);
|
||||
separatedInfo.textContent = `音频时长: ${minutes}:${seconds.toString().padStart(2, '0')}`;
|
||||
});
|
||||
}
|
||||
|
||||
syncToggle.addEventListener('click', () => {
|
||||
isSyncEnabled = !isSyncEnabled;
|
||||
syncStatus.textContent = isSyncEnabled ? '同步已启用' : '同步已禁用';
|
||||
syncToggle.textContent = isSyncEnabled ? '🔗 同步播放' : '🔴 暂停同步';
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
setupAudioSync();
|
||||
updateAudioInfo();
|
||||
});
|
||||
|
||||
function logout() {
|
||||
if (confirm('确定退出?')) {
|
||||
window.location.href = 'index.html';
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue