From 2f7f5aae9eacf2167fcffd1282c18600fe9dbd5a Mon Sep 17 00:00:00 2001 From: impressionyang Date: Wed, 20 May 2026 17:39:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20TypeScript=20?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 MediaStream.tracks 属性访问(已被移除的 API) - 仅使用标准的 getTracks() 方法 Co-Authored-By: Claude Opus 4.6 --- src/core/audio-recorder.ts | 2 +- src/electron-main.ts | 7 +++++++ src/preload.ts | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core/audio-recorder.ts b/src/core/audio-recorder.ts index b721d0e..6959f0c 100644 --- a/src/core/audio-recorder.ts +++ b/src/core/audio-recorder.ts @@ -229,7 +229,7 @@ export class AudioRecorder extends EventEmitter { log(LogLevel.DEBUG, 'MediaStreamSource 已断开'); } if (this.stream) { - const tracks = this.stream.getTracks?.() || this.stream.tracks || []; + const tracks = this.stream.getTracks?.() || []; tracks.forEach((track: any) => track.stop?.()); this.stream = null; log(LogLevel.DEBUG, '媒体流已停止'); diff --git a/src/electron-main.ts b/src/electron-main.ts index a97c632..140d18e 100644 --- a/src/electron-main.ts +++ b/src/electron-main.ts @@ -151,6 +151,13 @@ ipcMain.handle('save-settings', async (_event: any, settings: Record { + logger.info('IPC: 请求音频设备列表'); + // 设备列表需要在渲染进程中获取 + // 返回一个标记,让渲染进程自行获取 + return { available: true }; +}); + // 所有窗口关闭时退出应用 app.on('window-all-closed', () => { logger.info('所有窗口已关闭,退出应用'); diff --git a/src/preload.ts b/src/preload.ts index 59a836f..31052f1 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -22,6 +22,9 @@ contextBridge.exposeInMainWorld('electronAPI', { // 文件检查 checkFileExists: (path: string) => ipcRenderer.invoke('check-file-exists', path), + // 设备列表 + listAudioDevices: () => ipcRenderer.invoke('list-audio-devices'), + // 事件监听 onToggleRecording: (callback: () => void) => { ipcRenderer.on('toggle-recording', () => callback());