几个月前,我将音频记录添加到正在使用的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不支持的格式进行记录?
谢谢你的时间
伊恩
最佳答案
好的,我设法找到了解决方案。代码中的这一行..
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上正常运行。
伊恩
关于audio - 从mciSendString返回的奇怪错误-有人可以帮忙吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/642691/