Audio mciSendString返回奇怪错误-有人能帮忙吗?

Audio mciSendString返回奇怪错误-有人能帮忙吗?,audio,mcisendstring,Audio,Mcisendstring,几个月前,我将录音添加到我正在开发的MFC应用程序中。结果证明这很简单,一两个小时后,代码就可以在我的电脑和一些客户的测试机器上运行了(一台运行XP,另一台运行Vista)。然而,最近他们的一台测试机升级了,现在录音功能不起作用 开始录制的基本代码是 mcierr=mciSendString("open new type waveaudio alias mysound",tmpstr,80,NULL); mcierr=mciSendString("set mysound time format

几个月前,我将录音添加到我正在开发的MFC应用程序中。结果证明这很简单,一两个小时后,代码就可以在我的电脑和一些客户的测试机器上运行了(一台运行XP,另一台运行Vista)。然而,最近他们的一台测试机升级了,现在录音功能不起作用

开始录制的基本代码是

mcierr=mciSendString("open new type waveaudio alias mysound",tmpstr,80,NULL);
mcierr=mciSendString("set mysound time format ms bitspersample 8 samplespersec 11025",tmpstr,80,NULL);
mcierr=mciSendString("record mysound",tmpstr,80,NULL);
这似乎很管用。要停止记录,将执行以下代码

mcierr=mciSendString("stop mysound",tmpstr,80,NULL);
mcierr=mciSendString("save mysound C:\\filename.wav",tmpstr,80,NULL);   
mcierr=mciSendString("close mysound",tmpstr,80,NULL);
发送“save mysound C:\filename.wav”指令时发生以下错误。返回的错误为

MCI Error A parameter or value was specified twice.  Only specify it once.
但我看不出我发送的内容中有任何错误,而且这个错误毫无意义。该错误是否可能是因为程序试图使用PC不支持的格式录制

谢谢你的时间


伊恩

好的,我设法找到了解决办法。代码中的这一行

mcierr=mciSendString("save mysound C:\\filename.wav",tmpstr,80,NULL); 
在运行XP的开发PC上运行良好,但在一些运行XP的测试PC和所有运行Vista的测试PC上都会导致错误。但是,如果文件名本身放在这样的引号内,错误就会消失

mcierr=mciSendString("save mysound "C:\\filename.wav"",tmpstr,80,NULL);
现在,该代码在所有XP和Vista PC上都可以正常运行


伊恩

需要更多细节才能让它工作。 请观看文件名前后的双

mcierr=mciSendString("save mysound ""C:\\filename.wav""",tmpstr,80,NULL);
这也很好:

mcierr=mciSendString(@"save mysound ""C:\filename.wav""",tmpstr,80,NULL);

使用这些双引号,代码现在可以在我的Windows 7上运行。

给了我一个关于我遇到的问题的提示。谢谢