C#實(shí)現(xiàn)通過(guò)winmm.dll控制聲音播放的方法
更新時(shí)間:2014年08月18日 09:19:58 投稿:shichen2014
這篇文章主要介紹了C#實(shí)現(xiàn)通過(guò)winmm.dll控制聲音播放的方法,很實(shí)用的功能,需要的朋友可以參考下
本文以實(shí)例介紹了C#如何通過(guò)winmm.dll來(lái)播放聲音,主要實(shí)現(xiàn)步驟如下:
1.首先導(dǎo)入如下兩個(gè)函數(shù):
/// <summary> /// 向媒體控制接口發(fā)送控制命令 /// </summary> /// <param name="lpszCommand">命令,參見 /// http://msdn.microsoft.com/en-us/library/windows/desktop/dd743572(v=vs.85).aspx </param> /// <param name="lpszReturnString">命令返回的信息,如果沒(méi)有需要返回的信息可以為null</param> /// <param name="cchReturn">指定返回信息的字符串大小</param> /// <param name="hwndCallback">回調(diào)句柄,如果命令參數(shù)中沒(méi)有指定notify標(biāo)識(shí),可以為new IntPtr(0)</param> /// <returns>返回命令執(zhí)行狀態(tài)的錯(cuò)誤代碼</returns> [DllImport("winmm.dll")] static extern Int32 mciSendString(string lpszCommand, StringBuilder returnString, int bufferSize, IntPtr hwndCallback); /// <summary> /// 返回對(duì)執(zhí)行狀態(tài)錯(cuò)誤代碼的描述 /// </summary> /// <param name="errorCode">mciSendCommand或者mciSendString返回的錯(cuò)誤代碼</param> /// <param name="errorText">對(duì)錯(cuò)誤代碼的描述字符串</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.可以通過(guò)以下語(yǔ)句進(jìn)行播放控制:
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)); //關(guān)閉
感興趣的讀者可以動(dòng)手測(cè)試一下本文實(shí)例,相信會(huì)對(duì)大家的C#程序設(shè)計(jì)起到一定的借鑒與幫助作用。
您可能感興趣的文章:
- c# 播放聲音的四種方法
- C#實(shí)現(xiàn)用于操作wav聲音文件的類實(shí)例
- 教你如何用C#制作文字轉(zhuǎn)換成聲音程序
- C# winform中窗口關(guān)閉按鈕的隱藏與禁用詳解
- C# WinForm-Timer控件的使用
- C#用Topshelf創(chuàng)建Windows服務(wù)的步驟分享
- C# Winform中如何繪制動(dòng)畫示例詳解
- C# Winform調(diào)用百度接口實(shí)現(xiàn)人臉識(shí)別教程(附源碼)
- C# Winform程序?qū)崿F(xiàn)防止多開的方法總結(jié)【親測(cè)】
- C#調(diào)用Win32的API函數(shù)--User32.dll
- C# Winfrom實(shí)現(xiàn)Skyline畫直線功能的示例代碼
- c# 通過(guò)WinAPI播放PCM聲音
相關(guān)文章
WinForm中comboBox控件數(shù)據(jù)綁定實(shí)現(xiàn)方法
這篇文章主要介紹了WinForm中comboBox控件數(shù)據(jù)綁定實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了WinForm實(shí)現(xiàn)comboBox控件數(shù)據(jù)綁定的常用方法與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05C# WinForm調(diào)用Shell_NotifyIcon的示例代碼
這篇文章主要介紹了C# WinForm調(diào)用Shell_NotifyIcon的示例代碼,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-11-11