马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。WindowsMediaPlayer9.0是微软推出的最新数字媒体播放器,它除承继了mediaplayer8.0的优异的地方外,还增加了很多的有用功效。不外这些功效并非本文报告的重点,本文要讲的是怎样使用mediaplayer来编写一个本人的嵌进式软件,并让它具有播放cd,vcd,avi,mp3等的功效。 要编写这个程序你起首要熟习vb.net,由于本程序是利用vb.net编写。在你的盘算机上要安装windowsmediaplayer9.0。最初最关头的是要安装windowsmendiaplayer9.0sdk,在sdk中包括了一个dll,这个dll的感化是完成com和.net之间的转换,由于mediaplayer9.0的编程要利用一个mediaplayer9.0activeX控件,而activeX的实质就是一个com。关于windowsmendiaplayer9.0sdk能够到微软的msdn往下载。
完成下面3个软件的安装后还不成以下手编写代码,由于要包管mendiaplayer9.0要与.net框架通讯,还必需注册mendiaplayer9.0的pia,所谓pia是"Primaryinteropassemblies"的缩写自己将它翻译为"原始外部汇编集",之以是要先注册它是由于com手艺出生在.net手艺之前要让com和.net通讯就要一其中间层来毗连这双方在mendiaplayer9.0中利用mendiaplayer9.0sdkredist目次下的wmppia.dll来注册mendiaplayer9.0的pia,在命令窗口中输出:[path]regasmc:WMSDKWMPSDK9edistwmppia.dll(regasm是.net供应的pia注册程序,path是它的路径,你能够用搜刮功效来找到它)。
列位别觉得注册了pia就能够编程了,你还得将它增加到全局缓存中。在命令窗口中输出:[path]Gacutil/iC:WMSDKWMPSDK9edistwmppia.dll(Gacutil是.net供应的全局缓存增加程序,path是它的路径,你能够用搜刮功效来找到它)
完成下面的5个步骤后就能够入手下手编写代码了。为了让.net利用pia,我们必需要在代码的开首增加上面一条语句:ImportsMicrosoft.MediaPlayer.Interop如今就能够入手下手我们的编程之旅了。
右击vs.netide的控件工具箱,在快速菜单中单击"自界说工具箱",在"自界说工具箱"当选中"windowsmediaplayer"并单击"断定"()
此时会在控件工具拦底部增加一个mendia的控件标记。双击此控件,将它放在窗
体上。右击它并点击"属性"在呈现的属性窗口()中将"选择形式"设置为"none"并单击"断定",如许做的目标是往失落本来的播放控件。
然后在窗口中在增加如的控件,在属性窗口中将TrackBar1控件的最年夜和最小值设定为100和0,由于media的音量局限是0到100,我们用TrackBar1控件来调剂播放音量。T imer1的interval设置为1000。
如今能够输出以下代码了:
PrivateSubButton1_Click(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesButton1.Click
翻开和封闭一切光驱仓门
Dimi
Dimk=AxWindowsMediaPlayer1.cdromCollection.count()
Ifk>1Then
Fori=0Tok-1
AxWindowsMediaPlayer1.cdromCollection.Item(i).eject()
Next
Else
AxWindowsMediaPlayer1.cdromCollection.Item(0).eject()
EndIf
EndSub
PrivateSubForm1_Load(ByValsenderAsObject,
ByValeAsSystem.EventArgs)HandlesMyBase.Load
取得盘算机中有几个光驱和它们的盘符
Dimi
DimcdlabelAsString
Dimk=AxWindowsMediaPlayer1.cdromCollection.count()
Ifk>1Then
Fori=0Tok-1
cdlabel=cdlabel&
AxWindowsMediaPlayer1.cdromCollection.Item(i).driveSpecifier()
Label1.Text="这台盘算机共有"&k&
"台CD-ROM"&"分离是"&cdlabel&""
Next
Else
cdlabel=cdlabel+
AxWindowsMediaPlayer1.cdromCollection.Item(0).driveSpecifier()
Label1.Text="这台盘算机共有"&k&
"台CD-ROM"&"分离是"&cdlabel&""
EndIf
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesButton2.Click
DimstrfilenameAsString
DimOpenFileDialog1AsSystem.Windows.Forms.OpenFileDialog=
NewSystem.Windows.Forms.OpenFileDialog()
OpenFileDialog1.ShowDialog()
strfilename=OpenFileDialog1.FileName
AxWindowsMediaPlayer1.URL=strfilename
EndSub
PrivateSubButton3_Click(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesButton3.Click
AxWindowsMediaPlayer1.controls.play()播放
EndSub
PrivateSubButton5_Click(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesButton5.Click
AxWindowsMediaPlayer1.controls.stop()中断
EndSub
PrivateSubAxWindowsMediaPlayer1_PlayStateChange(ByValsenderAsObject,
ByValeAsAxMicrosoft.MediaPlayer.Interop._WMPOCXEvents_PlayStateChangeEvent)Handles
AxWindowsMediaPlayer1.PlayStateChange
暗示播放媒体产生变更时触发此事务
Label4.Text="此文件播放总工夫是"&
AxWindowsMediaPlayer1.currentMedia.durationString
Timer1.Enabled=True
Label5.Text="题目"&
AxWindowsMediaPlayer1.currentMedia.getItemInfoBytype("Title","",0)
Label6.Text="作者"&
AxWindowsMediaPlayer1.currentMedia.getItemInfoBytype("Author","",0)
EndSub
PrivateSubButton4_Click(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesButton4.Click
AxWindowsMediaPlayer1.controls.pause()停息
EndSub
PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesTimer1.Tick
Label2.Text="已播放工夫"&
CInt(AxWindowsMediaPlayer1.controls.currentPosition)&"秒"
EndSub
PrivateSubTrackBar1_Scroll(ByValsenderAsSystem.Object,
ByValeAsSystem.EventArgs)HandlesTrackBar1.Scroll
AxWindowsMediaPlayer1.settings.volume=TrackBar1.Value调剂输入音量
EndSub
程序申明:当你按下F5入手下手编译时,体系会提醒你有一个毛病,这个毛病就是在"Windows窗体计划器天生的代码"中的"Me.AxWindowsMediaPlayer1.enabled=True"这条语句引发的,其缘故原由是mediaplayer9.0的控件与.net的兼容成绩,此成绩已失掉微软的证明,鄙人一版本中即vs2003.net将不会有此成绩,在此版本中办理办法是将此代码往失落便可。
文中利用的getItemInfoBytype属性是用来读取元数据的中的信息(关于元数据的界说见sdk),这些信息是在媒体创建时输出出来的,可是这个属性其实不会在你编写代码时主动呈现,有就是说不具有智能添补功效,其缘故原由是mediaplayer9.0控件的某些新功效是经由过程接口公布的,而未在com范例库中公布,以是不具有智能添补功效。不外你能够依照sdk给出的语法誊写,编译器不会辨认不出来的。程序中对文件的播放工夫的盘算单元是秒,假如你感乐趣能够将它转换为mm:ss的格局。
运转如
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。 |