C#完成經由過程winmm.dll掌握聲響播放的辦法。本站提示廣大學習愛好者:(C#完成經由過程winmm.dll掌握聲響播放的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成經由過程winmm.dll掌握聲響播放的辦法正文
本文以實例引見了C#若何經由過程winmm.dll來播放聲響,重要完成步調以下:
1.起首導入以下兩個函數:
/// <summary> /// 向媒體掌握接口發送掌握敕令 /// </summary> /// <param name="lpszCommand">敕令,拜見 /// http://msdn.microsoft.com/en-us/library/windows/desktop/dd743572(v=vs.85).aspx </param> /// <param name="lpszReturnString">敕令前往的信息,假如沒有須要前往的信息可認為null</param> /// <param name="cchReturn">指定前往信息的字符串年夜小</param> /// <param name="hwndCallback">回調句柄,假如敕令參數中沒有指定notify標識,可認為new IntPtr(0)</param> /// <returns>前往敕令履行狀況的毛病代碼</returns> [DllImport("winmm.dll")] static extern Int32 mciSendString(string lpszCommand, StringBuilder returnString, int bufferSize, IntPtr hwndCallback); /// <summary> /// 前往對履行狀況毛病代碼的描寫 /// </summary> /// <param name="errorCode">mciSendCommand或許mciSendString前往的毛病代碼</param> /// <param name="errorText">對毛病代碼的描寫字符串</param> /// <param name="errorTextSize">指定字符串的年夜小</param> /// <returns>假如ERROR Code未知,前往false</returns> [DllImport("winmm.dll")] static extern bool mciGetErrorString(Int32 errorCode, StringBuilder errorText, Int32 errorTextSize);
2.示例代碼以下:
int error = mciSendString("open C:\\Users\\Angel\\Desktop\\123.wav alias myDivece", null, 0, new IntPtr(0)); if (error == 0) { mciSendString("play myDivece", null, 0, new IntPtr(0)); //播放 } else { StringBuilder errorText = new StringBuilder(); mciGetErrorString(error, errorText, 50); MessageBox.Show(errorText.ToString()); }
3.可以經由過程以下語句停止播放掌握:
mciSendString("play myDivece", null, 0, new IntPtr(0)); //播放 mciSendString("pause myDivece", null, 0, new IntPtr(0)); //暫停 mciSendString("stop myDivece", null, 0, new IntPtr(0)); //停滯 mciSendString("close myDivece", null, 0, new IntPtr(0)); //封閉
感興致的讀者可以著手測試一下本文實例,信任會對年夜家的C#法式設計起到必定的自創與贊助感化。