
展开全部
1 调用directsound来进行播放
usingSystem;
usingSystem.Runtime.InteropServices;
usingSystem.Text;
usingSystem.IO;
namespaceclsMCIPlay
{
///<summary>
///clsMci的摘要说明。
///</summary>
publicclassclsMCI
{
publicclsMCI()
{
//
//TODO:在此处添加构造函数逻辑
//
}
//定义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
{
//ASCIIEncodingasc=newASCIIEncoding();
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";
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
{
MessageBox.Show("出错错误!");
}
}
}
//播放
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)/<chmetcnv
w:st="on" unitname="F" sourcevalue="1000" hasspace="False"
negative="False" numbertype="1" tcsc="0">1000f</chmetcnv>);
}
}
//当前时间
publicintCurrentPosition
{
get
{
durLength="";
durLength=durLength.PadLeft(128,Convert.ToChar(""));
APIClass.mciSendString("statusmediaposition",durLength,durLength.Length,0);
mc.iPos=(int)(Convert.ToDouble(durLength)/<chmetcnv
w:st="on" unitname="F" sourcevalue="1000" hasspace="False"
negative="False" numbertype="1" tcsc="0">1000f</chmetcnv>);
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
);
}
}
2 使用API函数mciSendString进行操作
http://wenku.baidu.com/view/e4552353ad02de80d4d84026.html
usingSystem;
usingSystem.Runtime.InteropServices;
usingSystem.Text;
usingSystem.IO;
namespaceclsMCIPlay
{
///<summary>
///clsMci的摘要说明。
///</summary>
publicclassclsMCI
{
publicclsMCI()
{
//
//TODO:在此处添加构造函数逻辑
//
}
//定义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
{
//ASCIIEncodingasc=newASCIIEncoding();
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";
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
{
MessageBox.Show("出错错误!");
}
}
}
//播放
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)/<chmetcnv
w:st="on" unitname="F" sourcevalue="1000" hasspace="False"
negative="False" numbertype="1" tcsc="0">1000f</chmetcnv>);
}
}
//当前时间
publicintCurrentPosition
{
get
{
durLength="";
durLength=durLength.PadLeft(128,Convert.ToChar(""));
APIClass.mciSendString("statusmediaposition",durLength,durLength.Length,0);
mc.iPos=(int)(Convert.ToDouble(durLength)/<chmetcnv
w:st="on" unitname="F" sourcevalue="1000" hasspace="False"
negative="False" numbertype="1" tcsc="0">1000f</chmetcnv>);
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
);
}
}
2 使用API函数mciSendString进行操作
http://wenku.baidu.com/view/e4552353ad02de80d4d84026.html
展开全部
点击工具--选择工具箱--com组件---然后选择WindowMediaPlayer组件最后拖放到窗体上,
WindowMediaPlayer有个URL属性,你可以将mp3文件的地址交给它,然后就可以播放了。
WindowMediaPlayer有个URL属性,你可以将mp3文件的地址交给它,然后就可以播放了。
更多追问追答
追问
我想要的不是拖个控件就OK的,我想要的是自己写的方法···
追答
有能耐,那你自己写个个关于读取二进制文件的解码器
本回答被提问者采纳
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询