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