diff --git a/src/main/services/AudioCaptureService.ts b/src/main/services/AudioCaptureService.ts index 8ec608d..7340129 100644 --- a/src/main/services/AudioCaptureService.ts +++ b/src/main/services/AudioCaptureService.ts @@ -56,6 +56,7 @@ class AudioCaptureService extends EventEmitter { private _state: CaptureState = 'idle' private _currentDevice: AudioDevice | null = null private _refCount = 0 + private _cachedDevices: AudioDevice[] | null = null private _soxProcess: ChildProcess | null = null private _stream: Readable | null = null private _levelInterval: ReturnType | null = null @@ -221,6 +222,9 @@ class AudioCaptureService extends EventEmitter { } async getDevices(): Promise { + // 캐싱: PowerShell 호출이 느리므로 한번만 실행 + if (this._cachedDevices) return this._cachedDevices + const devices: AudioDevice[] = [ { deviceId: 'default', label: '시스템 기본 마이크', isDefault: true }, ] @@ -256,6 +260,7 @@ class AudioCaptureService extends EventEmitter { logger.warn(`Failed to enumerate audio devices via PowerShell: ${err instanceof Error ? err.message : String(err)}`) } + this._cachedDevices = devices logger.debug(`Found ${devices.length} audio device(s)`) return devices }