/** * BGM音效初始化脚本 * 为每个维度添加示例背景音乐 */ const mongoose = require('mongoose') require('dotenv').config() // 导入模型 const { BGM } = require('../src/models') // 示例BGM数据(实际使用时需要替换为真实的音频URL) const sampleBGMs = [ // 一维 - 线性旋律 { name: '星光轨迹', dimension: 1, url: 'https://example.com/bgm/dim1_starlight.mp3', duration: 120, loop: true, volume: 0.4, sortOrder: 1, description: '轻柔的线性旋律,适合一维空间的探索', isActive: true }, { name: '弦之舞', dimension: 1, url: 'https://example.com/bgm/dim1_string_dance.mp3', duration: 95, loop: true, volume: 0.45, sortOrder: 2, description: '活泼的弦乐节奏', isActive: true }, // 二维 - 平面和声 { name: '星座幻想', dimension: 2, url: 'https://example.com/bgm/dim2_constellation.mp3', duration: 150, loop: true, volume: 0.5, sortOrder: 1, description: '梦幻的星空音乐,配合二维星座绘制', isActive: true }, { name: '几何韵律', dimension: 2, url: 'https://example.com/bgm/dim2_geometry.mp3', duration: 110, loop: true, volume: 0.48, sortOrder: 2, description: '轻快的几何节奏', isActive: true }, // 三维 - 立体环绕 { name: '立方体回响', dimension: 3, url: 'https://example.com/bgm/dim3_cube_echo.mp3', duration: 180, loop: true, volume: 0.5, sortOrder: 1, description: '空间感强烈的立体音效', isActive: true }, { name: '多维共振', dimension: 3, url: 'https://example.com/bgm/dim3_resonance.mp3', duration: 140, loop: true, volume: 0.52, sortOrder: 2, description: '富有层次感的三维音效', isActive: true }, // 四维 - 时间流动 { name: '时空涟漪', dimension: 4, url: 'https://example.com/bgm/dim4_spacetime.mp3', duration: 200, loop: true, volume: 0.45, sortOrder: 1, description: '神秘的四维时空音乐', isActive: true }, { name: '超立方漫游', dimension: 4, url: 'https://example.com/bgm/dim4_tesseract.mp3', duration: 165, loop: true, volume: 0.47, sortOrder: 2, description: '穿越维度的奇妙旅程', isActive: true }, // 五维 - 高维混沌 { name: '思维风暴', dimension: 5, url: 'https://example.com/bgm/dim5_thought_storm.mp3', duration: 220, loop: true, volume: 0.5, sortOrder: 1, description: '复杂而迷人的高维音效', isActive: true }, { name: '量子纠缠', dimension: 5, url: 'https://example.com/bgm/dim5_quantum.mp3', duration: 190, loop: true, volume: 0.48, sortOrder: 2, description: '微观世界的奇妙声音', isActive: true } ] async function initBGM() { try { // 连接数据库 await mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/yuzhiran') console.log('✅ 数据库连接成功') // 检查是否已有BGM数据 const existingCount = await BGM.countDocuments() if (existingCount > 0) { console.log(`⚠️ 数据库中已有 ${existingCount} 条BGM记录,跳过初始化`) await mongoose.disconnect() return } // 插入示例数据 const result = await BGM.insertMany(sampleBGMs) console.log(`✅ 成功初始化 ${result.length} 条BGM记录`) // 按维度统计 for (let dim = 1; dim <= 5; dim++) { const count = await BGM.countDocuments({ dimension: dim }) console.log(` 维度${dim}: ${count} 首`) } console.log('\n🎵 BGM初始化完成!') console.log('💡 提示:请在后台管理系统中上传真实的音频文件并更新URL') } catch (error) { console.error('❌ BGM初始化失败:', error) } finally { await mongoose.disconnect() console.log('数据库连接已关闭') } } // 执行初始化 initBGM()