Update: 音效播放功能

This commit is contained in:
2025-08-07 01:15:18 +08:00
parent d57b5fb540
commit d1682f1b1c
11 changed files with 51 additions and 4 deletions

View File

@ -1,5 +1,31 @@
const { app, BrowserWindow, ipcMain } = require("electron"); const { app, BrowserWindow, ipcMain } = require("electron");
const path = require("path"); const path = require("path");
const { spawn } = require('child_process')
// 音效播放器
function playAudioFile(filePath) {
if (process.platform === 'win32') {
spawn('cmd', ['/c', `start "" "${filePath}"`])
} else if (process.platform === 'darwin') {
spawn('afplay', [filePath])
} else {
spawn('aplay', [filePath])
}
}
ipcMain.on('play-sound', (_, soundFile) => {
const soundPath = path.join(
__dirname,
'../renderer/src/assets/sounds',
soundFile
)
if (require('fs').existsSync(soundPath)) {
playAudioFile(soundPath)
} else {
console.error('音效文件不存在:', soundPath)
}
})
let mainWindow; let mainWindow;

View File

@ -1,7 +1,13 @@
const { contextBridge, ipcRenderer } = require('electron') const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', { contextBridge.exposeInMainWorld('electronAPI', {
playSound: (soundFile) => ipcRenderer.send('play-sound', soundFile), playSound: (soundFile) => {
try {
ipcRenderer.send('play-sound', soundFile)
} catch (err) {
console.error('播放音效失败:', err)
}
},
showTooltip: (text) => ipcRenderer.send('show-tooltip', text), showTooltip: (text) => ipcRenderer.send('show-tooltip', text),
onUpdatePosition: (callback) => { onUpdatePosition: (callback) => {
ipcRenderer.on('update-position', (_, position) => callback(position)) ipcRenderer.on('update-position', (_, position) => callback(position))

View File

@ -9,7 +9,16 @@ const tooltips = [
"为什么不开大!!", "为什么不开大!!",
"(凤鸣)", "(凤鸣)",
]; ];
const soundFiles = ["example.mp3"]; const soundFiles = [
"cnmb.mp3",
"冲刺,冲.mp3",
"哎你怎么死了.mp3",
"哎,猪逼.mp3",
"啊啊啊我草你妈呀.mp3",
"嘟嘟嘟.mp3",
"韭菜盒子.mp3",
"哇袄.mp3"
];
// 状态管理 // 状态管理
const showTooltip = ref(false); const showTooltip = ref(false);
@ -17,9 +26,15 @@ const currentTooltip = ref("");
const position = ref({ x: 0, y: 0 }); const position = ref({ x: 0, y: 0 });
// 点击事件处理 // 点击事件处理
const handleClick = () => { const handleClick = async () => {
const randomSound = soundFiles[Math.floor(Math.random() * soundFiles.length)]; const randomSound = soundFiles[Math.floor(Math.random() * soundFiles.length)];
window.electronAPI?.playSound(randomSound); console.log('尝试播放:', randomSound)
try {
window.electronAPI?.playSound(randomSound)
} catch (err) {
console.error('播放失败:', err)
}
currentTooltip.value = tooltips[Math.floor(Math.random() * tooltips.length)]; currentTooltip.value = tooltips[Math.floor(Math.random() * tooltips.length)];
showTooltip.value = true; showTooltip.value = true;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.