知识大全 VB.net与Media Player9.0嵌入

Posted

篇首语:春衣少年当酒歌,起舞四顾以笑和。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 VB.net与Media Player9.0嵌入相关的知识,希望对你有一定的参考价值。

VB.net与Media Player9.0嵌入  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Windows Media Player 是微软推出的最新数字媒体播放器 它除了继承了media player 的优秀之处外 还添加了许多的实用功能 不过这些功能并不是本文讲述的重点 本文要讲的是如何利用media player来编写一个自己的嵌入式软件 并让它拥有播放cd vcd avi mp 等的功能  

  要编写这个程序你首先要熟悉 因为本程序是使用编写 在你的计算机上要安装windows media player 最后最关键的是要安装windows mendia player sdk 在sdk中包含了一个dll 这个dll的作用是完成之间的转换 因为media player 的编程要使用一个media player activeX控件 而activeX的本质就是一个 对于windows mendia player sdk可以到微软的msdn去下载   

  完成上面 个软件的安装后还不可以动手编写代码 因为要保证mendia player 要框架通信 还必须注册mendia player 的pia 所谓pia是 Primary interop assemblies 的缩写本人将它翻译为 原始内部汇编集 之所以要先注册它是因为技术诞生技术之前要让通信就要一个中间层来连接这两边在mendia player 中使用mendia player sdk redist目录下的wmppia dll来注册mendia player 的pia 在命令窗口中输入 [path]regasm c:\\WMSDK\\WMPSDK \\ redist\\wmppia dll(提供的pia注册程序 path是它的路径 你可以用搜索功能来找到它)  

  各位别以为注册了pia就可以编程了 你还得将它添加到全局缓存中 在命令窗口中输入 [path]Gacutil /i C:\\WMSDK\\WMPSDK \\redist\\wmppia dll(提供的全局缓存添加程序 path是它的路径 你可以用搜索功能来找到它) 

  完成上面的 个步骤后就可以开始编写代码了 为了使用pia 我们必须要在代码的开头添加下面一条语句 Imports Microsoft MediaPlayer Interop现在就可以开始我们的编程之旅了

  右击 ide的控件工具箱 在快捷菜单中单击 自定义工具箱 在 自定义工具箱 中选中 windows media player 并单击 确定 (图 )

  图

  

  此时会在控件工具拦底部添加一个mendia的控件标志 双击此控件 将它放在窗

  体上 右击它并点击 属性 在出现的属性窗口(图 )中将 选择模式 设置为 none 并单击 确定 这样做的目的是去掉原来的播放控件

  

  然后在窗口中在添加如图 的控件 在属性窗口中将TrackBar 控件的最大和最小值设定为 和 因为media的音量范围是 到 我们用TrackBar 控件来调整播放音量 T  imer 的interval设置为

  

  现在可以输入以下代码了

  Private Sub Button _Click(ByVal sender As System Object   ByVal e As System EventArgs) Handles Button Click        打开和关闭所有光驱仓门        Dim i        Dim k = AxWindowsMediaPlayer unt()        If k > Then            For i = To k                 AxWindowsMediaPlayer cdromCollection Item(i) eject()            Next        Else            AxWindowsMediaPlayer cdromCollection Item( ) eject()        End If    End Sub Private Sub Form _Load(ByVal sender As Object       ByVal e As System EventArgs) Handles MyBase Load        获得计算机中有多少个光驱和它们的盘符        Dim i        Dim cdlabel As String        Dim k = AxWindowsMediaPlayer unt()        If k > Then            For i = To k                 cdlabel = cdlabel &     AxWindowsMediaPlayer cdromCollection Item(i) driveSpecifier()                Label Text = 这台计算机共有 & k &      台CD ROM & 分别是 & cdlabel &             Next        Else            cdlabel = cdlabel +        AxWindowsMediaPlayer cdromCollection Item( ) driveSpecifier()            Label Text = 这台计算机共有 & k &         台CD ROM & 分别是 & cdlabel &         End If    End Sub    Private Sub Button _Click(ByVal sender As System Object       ByVal e As System EventArgs) Handles Button Click        Dim strfilename As String        Dim OpenFileDialog As System Windows Forms OpenFileDialog =   New System Windows Forms OpenFileDialog()        OpenFileDialog ShowDialog()        strfilename = OpenFileDialog FileName        AxWindowsMediaPlayer URL = strfilename    End Sub    Private Sub Button _Click(ByVal sender As System Object         ByVal e As System EventArgs) Handles Button Click        AxWinntrols play() 播放    End Sub    Private Sub Button _Click(ByVal sender As System Object         ByVal e As System EventArgs) Handles Button Click        AxWinntrols stop() 停止    End SubPrivate Sub AxWindowsMediaPlayer _PlayStateChange(ByVal sender As Object  ByVal e As AxMicrosoft MediaPlayer Interop _WMPOCXEvents_PlayStateChangeEvent) Handles    AxWindowsMediaPlayer PlayStateChange 表示播放媒体发生变化时触发此事件        Label Text = 此文件播放总时间是 &     AxWindowsMediaPlayer currentMedia durationString        Timer Enabled = True        Label Text = 标题 &     AxWindowsMediaPlayer currentMedia getItemInfoBytype( Title )        Label Text = 作者 &     AxWindowsMediaPlayer currentMedia getItemInfoBytype( Author )           End Sub    Private Sub Button _Click(ByVal sender As System Object         ByVal e As System EventArgs) Handles Button Click        AxWinntrols pause() 暂停    End Sub    Private Sub Timer _Tick(ByVal sender As System Object         ByVal e As System EventArgs) Handles Timer Tick        Label Text = 已经播放时间 &   CInt(AxWinntrols currentPosition) & 秒     End Sub    Private Sub TrackBar _Scroll(ByVal sender As System Object         ByVal e As System EventArgs) Handles TrackBar Scroll        AxWindowsMediaPlayer settings volume = TrackBar Value 调整输出音量End Sub 

  程序说明 当你按下F 开始编译时 系统会提示你有一个错误 这个错误就是在 Windows 窗体设计器生成的代码 中的 Me AxWindowsMediaPlayer enabled = True 这条语句引起的 其原因是media player 的控件的兼容问题 此问题已经得到微软的证实 在下一版本中即将不会有此问题 在此版本中解决方法是将此代码去掉即可

  文中使用的getItemInfoBytype属性是用来读取元数据的中的信息(对于元数据的定义见sdk) 这些信息是在媒体建立时输入进去的 但是这个属性并不会在你编写代码时自动出现 有就是说不具备智能填充功能 其原因是media player 控件的某些新功能是通过接口发布的 而未在类型库中发布 所以不具备智能填充功能 不过你可以按照sdk给出的语法书写 编译器不会识别不出来的 程序中对文件的播放时间的计算单位是秒 如果你感兴趣可以将它转换为mm ss的格式

  运行如图

  

cha138/Article/program/net/201311/13204

相关参考

知识大全 了解VB.NET中的常量与枚举

了解VB.NET中的常量与枚举  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在程序运行的过程中

知识大全 了解VB.NET中的常量与枚举功能

了解VB.NET中的常量与枚举功能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   在

知识大全 VB.NET中常量与枚举基础知识了解

VB.NET中常量与枚举基础知识了解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在程序运行的

知识大全 设计模式与VB .net代码 外观模式,合成模式

设计模式与VB.net代码外观模式,合成模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  外观

知识大全 VB.NET与WEB服务器通讯过程详解

VB.NET与WEB服务器通讯过程详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  WebRe

知识大全 ADO在vb.net中的使用(与datagrid结合)

ADO在vb.net中的使用(与datagrid结合)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 使用VB.net实现sql数据库的备份与恢复代码

使用VB.net实现sql数据库的备份与恢复代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 VB.NET实现PC与掌上电脑PPC的双向通信

VB.NET实现PC与掌上电脑PPC的双向通信  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文介

知识大全 从VB 6迁移到VB.NET的进展至今仍旧缓慢

从VB6迁移到VB.NET的进展至今仍旧缓慢  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在发布V

知识大全 VB.NET中声音的播放

VB.NET中声音的播放  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由VB升级为NET后有些人