0
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message 'OLE error 80045006'.
---------------------------
Break Continue Help
---------------------------
내가 CoInitialize를 호출했습니다. 내 코드는스레드에서 sapi를 호출하면 오류 코드가 발생합니다. OLE 오류 80045006
hr := CoInitialize(nil);
SpVoice := TSpVoice.Create(Application);
SpVoice.Connect;
SpVoice.Speak('Test text');
CoUninitialize;
입니다. 오류는 neospeech 음성을 선택했을 때만 발생합니다.
오류 0x80046005는 SPERR_DEVICE_BUSY입니다. 하드웨어 장치가 다른 스레드 또는 프로세스에서 사용 중입니다. MSDN Says : 많은 구형 시스템에서 오디오 출력 장치는 단일 프로세스로만 열 수 있습니다. Windows XP 이전의 Windows 버전에서는 오디오 입력 장치를 열 수있는 프로세스가 하나뿐입니다. 따라서 SPERR_DEVICE_BUSY는 다른 프로세스 또는 스레드에서 사용중인 장치를 열려고 시도하면 반환됩니다. Windows XP (이상)에서는 여러 프로세스가 동일한 오디오 장치를 열 수 있습니다. – Remko
@Remko : 그것은 본격적인 대답 일 수 있습니다. 내 표를 얻을 것입니다. – gabr
@ gabr : 감사합니다. 답변으로 추가되었습니다. – Remko