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說:在許多較老的系統中,音頻輸出設備只能通過一個進程打開。在Windows XP之前的Windows版本中,只有一個進程可以打開音頻輸入設備。因此,如果嘗試打開正在由不同進程或線程使用的設備,SPERR_DEVICE_BUSY將會返回。在Windows XP(及更高版本)中,多個進程可以打開同一個音頻設備 – Remko 2010-12-18 19:16:29
@Remko:這可能是一個完整的答案。會得到我的投票。 – gabr 2010-12-18 19:36:34
@ gabr:謝謝,添加爲答案。 – Remko 2010-12-18 19:43:55