几个月前,我在一个正在开发的MFC应用程序中添加了录音功能。事实证明,这非常简单,一两个小时后,代码在我的PC和两台客户测试的机器(一台运行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);当发送“保存mysound C:\filename.wav”指令时,出现以下错误。返回的错误为..
MCI Error A parameter or value was specified twice. Only specify it once.但是我在我发送的内容中看不到任何错误,并且这个错误没有任何意义。有没有可能这个错误是因为程序试图使用PC不支持的格式进行录制?
耽误您时间,实在对不起
伊恩
发布于 2009-04-17 07:46:33
好吧,我设法找到了一个解决方案。代码中的这一行..
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上正常运行。
伊恩
发布于 2013-01-03 03:30:31
为了让它工作,需要更多的细节。请注意文件名前后的双"":
mcierr=mciSendString("save mysound ""C:\\filename.wav""",tmpstr,80,NULL);这也很好:
mcierr=mciSendString(@"save mysound ""C:\filename.wav""",tmpstr,80,NULL);有了这些双引号,代码现在可以在我的Windows7上运行了。
https://stackoverflow.com/questions/642691
复制相似问题