training-academy/electron-audio-debug.js

105 lines
3.6 KiB
JavaScript

/**
* Electron Audio Path Debug Script
* Run this in the console to debug audio path issues in Electron
*/
function debugElectronAudioPaths() {
console.log('🔧 Electron Audio Path Debug');
console.log('=' .repeat(50));
console.log('Environment Info:');
console.log('- Is Electron:', window.electronAPI !== undefined);
console.log('- Current URL:', window.location.href);
console.log('- Current Protocol:', window.location.protocol);
console.log('- Current Directory:', window.location.href.replace('/index.html', ''));
// Test basic audio creation
console.log('\n🎵 Testing Basic Audio Creation:');
try {
const testAudio = new Audio();
console.log('✅ Audio element created successfully');
console.log('- Initial src:', testAudio.src);
// Test setting a simple relative path
testAudio.src = 'audio/tasks/teasing/u.mp3';
console.log('- After setting relative path:', testAudio.src);
// Test setting an absolute file path
const absolutePath = window.location.href.replace('/index.html', '') + '/audio/tasks/teasing/u.mp3';
testAudio.src = absolutePath;
console.log('- After setting absolute path:', testAudio.src);
testAudio.src = '';
} catch (error) {
console.error('❌ Error creating audio element:', error);
}
// Test actual file access
console.log('\n📁 Testing File Access:');
const testPaths = [
'audio/tasks/teasing/u.mp3',
'./audio/tasks/teasing/u.mp3',
window.location.href.replace('/index.html', '') + '/audio/tasks/teasing/u.mp3'
];
testPaths.forEach((path, index) => {
console.log(`\nTest ${index + 1}: ${path}`);
const audio = new Audio();
audio.addEventListener('loadstart', () => {
console.log(` ✅ Load started for: ${path}`);
});
audio.addEventListener('canplay', () => {
console.log(` ✅ Can play: ${path}`);
audio.src = ''; // Clean up
});
audio.addEventListener('error', (e) => {
console.log(` ❌ Error loading: ${path}`);
console.log(` Error details:`, {
error: e.target.error,
src: e.target.src,
networkState: e.target.networkState,
readyState: e.target.readyState
});
});
try {
audio.src = path;
setTimeout(() => {
if (audio.readyState === 0 && audio.networkState !== 2) {
console.log(` ⏰ Timeout for: ${path}`);
}
}, 2000);
} catch (error) {
console.log(` ❌ Exception setting src: ${error.message}`);
}
});
// Test if electronAPI is available and working
if (window.electronAPI) {
console.log('\n⚡ Testing Electron API:');
window.electronAPI.fileExists('audio/tasks/teasing/u.mp3').then(exists => {
console.log('- File exists (relative):', exists);
}).catch(err => {
console.log('- Error checking file existence:', err);
});
window.electronAPI.getAppPath().then(appPath => {
console.log('- App path:', appPath);
}).catch(err => {
console.log('- Error getting app path:', err);
});
}
}
// Auto-run the debug
console.log('🔧 Electron Audio Debug loaded. Running automatic test...');
debugElectronAudioPaths();
// Make function available globally
window.debugElectronAudioPaths = debugElectronAudioPaths;