c# 使用windows自帶winmm.dll 播放音頻


今天幫同事完成一個C#應用程式,用戶需要在點擊完成后發出指定聲音。我們使用windows 自帶的winmm.dll,這樣就不用到處找庫了,利有系統播放音頻功能完成開發。

下面是完整的核心代碼:

 1 using System.Runtime.InteropServices; //DllImport的命名空間
2 [DllImport("winmm.dll")]privatestaticexternlong mciSendString(string lpstrCommand,StringBuilder lpstrReturnString,int uReturnLength,int hwndCallback);//C#調用windows native dll 的方法
3 const string audiofile = "ok.mp3";//音頻文件路徑 4 privatevoid btnplay_Click(object sender,EventArgs e){ 5   string CommandString="open "+"\""+ audiofile+"\""+" type MPEGVideo alias Mp3File";//注意,alias 后面的Mp3File是你取的別名,當然廢話,英文意思就是別名。所以可以隨便取,但一定要與后面的命令中的名字相同。注意“\”“,你可以不要,但最好還是保留,否則不小心忘了在"type"前留空格,整個命令就沒有分隔符了,其實整個命令也可以不用“ type MPEGVideo”,但別忘了在alias前加入空格(如果有\"也可以不用)。 6 mciSendString(CommandString,null,0,0); 7   CommandString="set Mp3File time format ms"; 8 mciSendString(CommandString,null,0,0); 9 CommandString ="seek Mp3File to 0";//0 即音頻開始,當然第一次本來就在開始,但如果你重復動作,不將播放位置放在0位,那么第一次播完就無法再播出聲音了,因為系統已經播放文件到最后了。 10 mciSendString(CommandString,null,0,0); 11   CommandString="play Mp3File"; 12 mciSendString(CommandString,null,0,0); 13 }//

 其實很簡單,就是通過命令調用系統音頻播放功能。以上代碼也是可以播放wav等格式的,只需要去掉“type MPEGVideo”,這一段就行了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM