问题描述
如题,不知道哪个控件能实现。或者那位能给出相应的代码。
解决方案
解决方案二:
openFileDialog1.Filter="mp3文件(*.mp3;)|*.mp3|所有文件(*.*)|*.*";if(this.openFileDialog1.ShowDialog()==DialogResult.OK){try{textBox5.Text=System.IO.Path.GetFileName(this.openFileDialog1.FileName);//*********************************************//播放发音stringname=this.openFileDialog1.FileName;///产生短路径名StringBuildershortpath=newStringBuilder(80);intresult=GetShortPathName(name,shortpath,shortpath.Capacity);name=shortpath.ToString();mciSendString(@"closeall",null,0,0);mciSendString(@"open"+name+"aliassong",null,0,0);//打开mciSendString("playsong",null,0,0);//播放//**********************************************}catch(Exception){}}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<summary>///使用API///</summary>publicstaticuintSND_ASYNC=0x0001;//playasynchronouslypublicstaticuintSND_FILENAME=0x00020000;//按文件名播放[DllImport("winmm.dll")]publicstaticexternintmciSendString(stringm_strCmd,stringm_strReceive,intm_v1,intm_v2);[DllImport("Kernel32",CharSet=CharSet.Auto)]staticexternInt32GetShortPathName(Stringpath,StringBuildershortPath,Int32shortPathLength);///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////自己改改吧
解决方案三:
右键toolbox-->选择item--->COM组件---->钩选WindowsMediaPlayer--->OK
解决方案四:
这个控件用法很简单,应该没什么问题吧
解决方案五:
最好将该音乐文件放到运行目录下的一个地方,publicstaticuintSND_ASYNC=0x0001;//playasynchronouslypublicstaticuintSND_FILENAME=0x00020000;//nameisfilename[DllImport("winmm.dll")]publicstaticexternintmciSendString(stringm_strCmd,stringm_strReceive,intm_v1,intm_v2);[DllImport("Kernel32",CharSet=CharSet.Auto)]staticexternInt32GetShortPathName(Stringpath,StringBuildershortPath,Int32shortPathLength);这些代码放在最前面,表示引入两个winmm库然后再窗体启动的load事件中添加如下代码即可:stringname=@"E:Music故乡的原风景.mp3";System.Text.StringBuildershortpath=newSystem.Text.StringBuilder(80);intresult=GetShortPathName(name,shortpath,shortpath.Capacity);name=shortpath.ToString();mciSendString(@"closeall",null,0,0);mciSendString(@"open"+name+"aliassong",null,0,0);//打开mciSendString("playsong",null,0,0);//播放
解决方案六:
用winmm方法可以不用添加任何控件,只需要引入两个dll即可,就是在程序代码最前面添加引用,之后再load事件中播放
解决方案七:
学习拉
解决方案八:
学习
解决方案九:
在Form_Load事件中添加如下代码:stringMyFileName="C:\音乐名.mp3";QuartzTypeLib.FilgraphManagergrahManager=newQuartzTypeLib.FilgraphManager();QuartzTypeLib.IMediaControlcontrol=(QuartzTypeLib.IMediaControl)grahManager;control.RenderFile(MyFileName);control.Run();
在项目->添加引用->浏览->[windows目录]->system32->quartz.dll
解决方案十:
8楼的方法是引用系统的另外一个dll,能帮忙解释哈吗?这个是什么原理?
解决方案十一:
我只知道用2楼的方法,呵
解决方案十二:
引用9楼Tll_W的回复:
8楼的方法是引用系统的另外一个dll,能帮忙解释哈吗?这个是什么原理?
呵呵,这是系统自带的,我最近刚好要写个多媒体播放器,用到它。其实所有的应用程序都是用的windows函数。只不过有些常用的vc#将它封装拉。
解决方案十三:
8楼的,我试了下,好像只能播放几秒钟,就停了,我的是VISTA系统,播放一首4M的歌
解决方案十四:
这个就不清楚了,我的系统不是VISTA,我也不能帮你测试,你看用另一个线程控制背景音乐能行吗?namespaceTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//privatedelegatevoidplayer();privatevoidplaermusic(){stringMyFileName="E:\音乐\其他\forever-friends.mp3";QuartzTypeLib.FilgraphManagergrahManager=newQuartzTypeLib.FilgraphManager();QuartzTypeLib.IMediaControlcontrol=(QuartzTypeLib.IMediaControl)grahManager;control.RenderFile(MyFileName);control.Run();}privatevoidForm1_Load(objectsender,EventArgse){newSystem.Threading.Thread(newSystem.Threading.ThreadStart(plaermusic)).Start();}}}
解决方案十五:
引用13楼baihe_591的回复:
这个就不清楚了,我的系统不是VISTA,我也不能帮你测试,你看用另一个线程控制背景音乐能行吗?C#codenamespaceTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//privatedelegatevoidplayer();privatevoidplaermusic(){stringMyFileName="E:…
QuartzTypeLib这个的引用在哪里可以找到啊?
解决方案:
mark
解决方案:
请参考: