C#实现简单播放mp3的方法
本文实例讲述了C#实现简单播放mp3的方法。分享给大家供大家参考。具体实现方法如下:
///<summary> ///测试 ///</summary> classTestDemo { publicvoidTest() { clsMCIcm=newclsMCI(); cm.FileName="alarm.mp3"; cm.play(); } } ///<summary> ///clsMci的摘要说明。 ///</summary> publicclassclsMCI { publicclsMCI() { } //定义API函数使用的字符串变量 [MarshalAs(UnmanagedType.ByValTStr,SizeConst=260)] privatestringName=""; [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)] privatestringdurLength=""; [MarshalAs(UnmanagedType.LPTStr,SizeConst=128)] privatestringTemStr=""; intilong; //定义播放状态枚举变量 publicenumState { mPlaying=1, mPuase=2, mStop=3 }; //结构变量 publicstructstructMCI { publicboolbMut; publicintiDur; publicintiPos; publicintiVol; publicintiBal; publicstringiName; publicStatestate; }; publicstructMCImc=newstructMCI(); //取得播放文件属性 publicstringFileName { get { returnmc.iName; } set { try { TemStr=""; TemStr=TemStr.PadLeft(127,Convert.ToChar("")); Name=Name.PadLeft(260,Convert.ToChar("")); mc.iName=value; ilong=APIClass.GetShortPathName(mc.iName,Name,Name.Length); Name=GetCurrPath(Name); Name="open"+Convert.ToChar(34)+Name+Convert.ToChar(34)+"aliasmedia"; ilong=APIClass.mciSendString("closeall",TemStr,TemStr.Length,0); ilong=APIClass.mciSendString(Name,TemStr,TemStr.Length,0); ilong=APIClass.mciSendString("setmediatimeformatmilliseconds",TemStr,TemStr.Length,0); mc.state=State.mStop; } catch { } } } //播放 publicvoidplay() { TemStr=""; TemStr=TemStr.PadLeft(127,Convert.ToChar("")); APIClass.mciSendString("playmedia",TemStr,TemStr.Length,0); mc.state=State.mPlaying; } //停止 publicvoidStopT() { TemStr=""; TemStr=TemStr.PadLeft(128,Convert.ToChar("")); ilong=APIClass.mciSendString("closemedia",TemStr,128,0); ilong=APIClass.mciSendString("closeall",TemStr,128,0); mc.state=State.mStop; } publicvoidPuase() { TemStr=""; TemStr=TemStr.PadLeft(128,Convert.ToChar("")); ilong=APIClass.mciSendString("pausemedia",TemStr,TemStr.Length,0); mc.state=State.mPuase; } privatestringGetCurrPath(stringname) { if(name.Length<1)return""; name=name.Trim(); name=name.Substring(0,name.Length-1); returnname; } //总时间 publicintDuration { get { durLength=""; durLength=durLength.PadLeft(128,Convert.ToChar("")); APIClass.mciSendString("statusmedialength",durLength,durLength.Length,0); durLength=durLength.Trim(); if(durLength=="")return0; return(int)(Convert.ToDouble(durLength)/1000f); } } //当前时间 publicintCurrentPosition { get { durLength=""; durLength=durLength.PadLeft(128,Convert.ToChar("")); APIClass.mciSendString("statusmediaposition",durLength,durLength.Length,0); mc.iPos=(int)(Convert.ToDouble(durLength)/1000f); returnmc.iPos; } } } publicclassAPIClass { [DllImport("kernel32.dll",CharSet=CharSet.Auto)] publicstaticexternintGetShortPathName( stringlpszLongPath, stringshortFile, intcchBuffer ); [DllImport("winmm.dll",EntryPoint="mciSendString",CharSet=CharSet.Auto)] publicstaticexternintmciSendString( stringlpstrCommand, stringlpstrReturnString, intuReturnLength, inthwndCallback ); }
希望本文所述对大家的C#程序设计有所帮助。