C#實現通過winmm.dll控制聲音播放的方法
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
本文以實例介紹了C#如何通過winmm.dll來播放聲音,主要實現步驟如下: 1.首先導入如下兩個函數: /// 向媒體控制接口發送控制命令 /// 命令,參見 http://msdn.microsoft.com/en-us/library/windows/desktop/dd743572(v=vs.85).aspx /// 命令返回的信息,如果沒有需要返回的信息可以為null /// 指定返回信息的字符串大小 /// 回調句柄,如果命令參數中沒有指定notify標識,可以為new IntPtr(0) /// 返回命令執行狀態的錯誤代碼 [DllImport("winmm.dll")] static extern Int32 mciSendString(string lpszCommand, StringBuilder returnString, int bufferSize, IntPtr hwndCallback); /// 返回對執行狀態錯誤代碼的描述 /// mciSendCommand或者mciSendString返回的錯誤代碼 /// 對錯誤代碼的描述字符串 /// 指定字符串的大小 /// 如果ERROR Code未知,返回false [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#程序設計起到一定的借鑒與幫助作用。 該文章在 2021/2/1 10:42:39 編輯過 |
關鍵字查詢
相關文章
正在查詢... |