0
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message 'OLE error 80045006'.
---------------------------
Break   Continue   Help   
---------------------------

我已经调用了 CoInitialize。我的代码是:

hr := CoInitialize(nil);

SpVoice := TSpVoice.Create(Application);
SpVoice.Connect;
SpVoice.Speak('Test text');

CoUninitialize;

并且该错误仅在我选择 neospeech 语音时发生。

4

1 回答 1

3

错误 0x80046005 是 SPERR_DEVICE_BUSY:硬件设备正在被另一个线程或进程使用。MSDN 说:在许多旧系统中,音频输出设备只能由单个进程打开。在 Windows XP 之前的 Windows 版本中,只有一个进程可以打开音频输入设备。因此,如果尝试打开正在由不同进程或线程使用的设备,则 SPERR_DEVICE_BUSY 将返回。在 Windows XP(及更高版本)中,多个进程可以打开同一个音频设备

于 2010-12-18T19:43:24.747 回答