C#MciSendString录制,在调试中工作,未部署

时间:2012-04-16 14:27:57

标签: c# winmm mci

我真的希望有人能指出我正确的方向。当我在Visual Studio Express 2010中进行调试时,此代码非常有效,但在构建和部署时,给我mci错误263 - “指定的设备未打开,也不被mci识别”。

我尝试过修改构建设置但没有,但没有快乐。当然这必须是配置问题而不是代码?

任何人都可以提供的帮助将不胜感激。

-----代码遵循----

[DllImport("winmm.dll")]
private static extern int mciSendString(string lpstrCommand, string lpstrReturnString,               int uReturnLength, int hwndCallback);
[System.Runtime.InteropServices.DllImport("winmm.dll")]
private static extern bool mciGetErrorString(int fdwError, StringBuilder lpszErrorText, int cchErrorText);

///Inside a button function
mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
mciSendString("record recsound", "", 0, 0);

//Inside another button function
int i = mciSendString(@"save recsound C:/test22/sound", outs, 0, 0);
MessageBox.Show(""+i);

StringBuilder buffer = new StringBuilder(128);
bool returnValue = mciGetErrorString(i, buffer, buffer.Capacity);
string err = buffer.ToString();
MessageBox.Show(buffer.ToString());

2 个答案:

答案 0 :(得分:2)

通过实际指定一个文件将其保存为...

,我得到了你的代码
string outs = "";
//Inside another button function
int i = mciSendString(@"save recsound C:/test.wav", ref outs, 0, 0);

我也将out参数更改为ref,尽管我怀疑它与它有什么关系。

答案 1 :(得分:0)

您尝试播放什么类型的文件?它在哪里部署?我最近遇到了同样的问题;我无法在我的一台测试机上播放.mp3s或.wmas(我得到了同样的错误:263)。我安装了Windows Media Player并且工作正常,因此这让我相信缺少编解码器。现在我只需弄清楚它是什么编解码器。