2012-04-16 50 views
0

我真的希望有人可以用這個指向正確的方向。當我在Visual Studio Express 2010中進行調試時,此代碼完美工作,但在構建和部署時給我提供mci錯誤263 - 「指定的設備未打開,無法識別mci」。C#MciSendString記錄,在調試中工作,未部署

我已經試過修補設置和什麼不是,但沒有喜悅。這肯定是一個配置問題,而不是代碼?

任何人都可以提供幫助將不勝感激。

-----代碼遵循----

[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()); 

回答

0

是你要玩什麼類型的文件?它在哪裏部署?我最近遇到了同樣的問題;我無法在我的一臺測試機器上播放.mp3s或.wmas文件(我收到相同的錯誤:263)。我安裝了Windows Media Player,他們工作,所以這導致我相信一個編解碼器丟失。現在我只需要弄清楚它是什麼編解碼器。

2

嗯,我得到了你的代碼通過實際指定一個文件保存爲工作...

string outs = ""; 
//Inside another button function 
int i = mciSendString(@"save recsound C:/test.wav", ref outs, 0, 0); 

我也改變了輸出參數的裁判,雖然我懷疑,有什麼做它。