import { log } from './utils/logger.js'; import { updateScriptStatus } from './document.js' // 检查Opus库是否已加载 export function checkOpusLoaded() { try { // 检查Module是否存在(本地库导出的全局变量) if (typeof Module === 'undefined') { throw new Error('Opus库未加载,Module对象不存在'); } // 尝试先使用Module.instance(libopus.js最后一行导出方式) if (typeof Module.instance !== 'undefined' && typeof Module.instance._opus_decoder_get_size === 'function') { // 使用Module.instance对象替换全局Module对象 window.ModuleInstance = Module.instance; log('Opus库加载成功(使用Module.instance)', 'success'); updateScriptStatus('Opus库加载成功', 'success'); // 3秒后隐藏状态 const statusElement = document.getElementById('scriptStatus'); if (statusElement) statusElement.style.display = 'none'; return; } // 如果没有Module.instance,检查全局Module函数 if (typeof Module._opus_decoder_get_size === 'function') { window.ModuleInstance = Module; log('Opus库加载成功(使用全局Module)', 'success'); updateScriptStatus('Opus库加载成功', 'success'); // 3秒后隐藏状态 const statusElement = document.getElementById('scriptStatus'); if (statusElement) statusElement.style.display = 'none'; return; } throw new Error('Opus解码函数未找到,可能Module结构不正确'); } catch (err) { log(`Opus库加载失败,请检查libopus.js文件是否存在且正确: ${err.message}`, 'error'); updateScriptStatus('Opus库加载失败,请检查libopus.js文件是否存在且正确', 'error'); } }