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#法式設計起到必定的自創與贊助感化。