vb 中用 wmp.dll 控件制作媒体播放器时遇到的几个问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 中用 wmp.dll 控件制作媒体播放器时遇到的几个问题相关的知识,希望对你有一定的参考价值。

我的毕业设计是用VB做个媒体播放器,用的是WindowsMediaPlayer控件(控件名为wmp.dll)
大家注意一下,不是MCI控件也不是MXDSM控件哈!!!

现在遇到几个问题:

1.载入一个媒体文件后,怎样获取媒体总时间长度?
我试过用wmp.currentMedia.duration和wmp.currentMedia.durationString 显示是时间是0, wmp.currentMedia.getItemInfo("Duration")也不行

2.用WPM控件播放时无法响应KEY_DOWN(我想用空格控制播放暂停)

3.用wmp.settings.balance属性控制左右声道时,可是有些文件行有些不行

4.如何知道视频文件的长宽信息?(找了半天找不到……)

5.wpm控件中是否有前端显示和开关光驱仓门的函数?(我不想用API实现)

6.如何CALL不同窗口的模块,比如我想在FORM2里CALL FORM1中的COMMAND1,如何实现?

7.怎样知道播放是否完成?好象是EndOfStream吧,怎么用?

分数不是问题,重要的是我的毕业设计能按时完成
问题保留10天,谢谢大家帮我^_^
果然播放开了信息都能加载了
第二问我自己解决了:我用的是KEY_DOWN响应的是KEY_CODE事件而不是KEYASCII,惭愧……
第六问……笨了,我居然没想到……

呵呵,说了保留10天的就要做到,至于分数,你放心吧^_^

大哥,字打得这么辛苦,可否送分了呢??

第一问: 为什么在我这儿就可以呢?(也许是你在播放器播放之前用了这一句,这个属性得用在该控件播放之后,所以我把代码放进这里):

Private Sub wmp_PlayStateChange(ByVal NewState As Long)
If NewState = 3 Then Text1.Text = wmp.currentMedia.durationString
End Sub

第二问: 我用Key_press做了试验,可以的(判断nkeyAscii是否等于32就行了)

第三问: 不会吧,我试了许多类型的文件,但都是可以的。
wmp.settings.balance = -100 '我用的是这一句,把它设成了左声道。

第四问:你指的是视频的原始长宽吧,那么可以用这几句:
wmp.Controls.currentItem.imageSourceHeight '这是原始宽度
wmp.Controls.currentItem.imageSourceWidth '这是原始长度
同理,上述语句必须是在播放器已经开始播放之后才能正常执行。

第五问:据我所知,没有……(十分遗憾)

第六问:把form1中的Private sub command1_click()改成public sub command1_click(),然后就可以在form2中用call form1.command1_click调用它了。

第七问:
Private Sub Wmp_PlayStateChange(ByVal NewState As Long)
If NewState = wmppsMediaEnded Then
Debug.Print "完了"
End If
End Sub

上面这段代码可行!

大哥,字打得这么辛苦,可否送分呢??
参考技术A 在设计模式下选择WindowsMediaPlayer的“自定义……”可以设置它的相关基本属性,如装载时是否启动它,窗口模式--最大化还是最小化
WindowsMediaPlayer主要用到以下属性:
WindowsMediaPlayer.playState=(1、2、3……)
WindowsMediaPlayer.URL=""(音乐文件路径)
WindowsMediaPlayer.windowlessVideo = True/False
WindowsMediaPlayer1.Close 关闭播放器
我虽不是很懂,但你可以去请教一下其它的电脑公司,他们这知道
该怎么办的~如果不行,试试这个:
设计模式下选择WindowsMediaPlayer的“自定义……”可以设置它的相关基本属性,如装载时是否启动它,窗口模式--最大化还是最小化
WindowsMediaPlayer主要用到以下属性:
WindowsMediaPlayer.playState=(1、2、3……)
WindowsMediaPlayer.URL=""(音乐文件路径)
WindowsMediaPlayer.windowlessVideo = True/False
WindowsMediaPlayer1.Close 关闭播放器
这不行就没办法了~!!
参考技术B 在设计模式下选择WindowsMediaPlayer的“自定义……”可以设置它的相关基本属性,如装载时是否启动它,窗口模式--最大化还是最小化
WindowsMediaPlayer主要用到以下属性:
WindowsMediaPlayer.playState=(1、2、3……)
WindowsMediaPlayer.URL=""(音乐文件路径)
WindowsMediaPlayer.windowlessVideo = True/False
WindowsMediaPlayer1.Close 关闭播放器
参考技术C 我虽不是很懂,但你可以去请教一下其它的电脑公司,他们这知道
该怎么办的~如果不行,试试这个:
设计模式下选择WindowsMediaPlayer的“自定义……”可以设置它的相关基本属性,如装载时是否启动它,窗口模式--最大化还是最小化
WindowsMediaPlayer主要用到以下属性:
WindowsMediaPlayer.playState=(1、2、3……)
WindowsMediaPlayer.URL=""(音乐文件路径)
WindowsMediaPlayer.windowlessVideo = True/False
WindowsMediaPlayer1.Close 关闭播放器
这不行就没办法了~!!
参考技术D 很麻烦的

在vb.net 中使用mediaPlayer控件

  在vb.net 中,使用mediaPlayer插件可以制作自己的媒体播放器。以下是相关代码。
  ’ 设定插件的大小,使用 Size 类
wmp.Size = New Size(wmp.Size.Width, 1519)
wmp.Size = New Size(wmp.Size.Height, 1018)
’ 设定插件的位置,使用 Point 类
wmp.Location = New Point(wmp.Location.X, 23)
wmp.Location = New Point(wmp.Location.Y, 34)
’ 设定播放为循环模式
wmp.settings.setMode(“loop”, True)
’ 设定播放的影片地址
wmp.URL = Application.StartupPath & “\\” & “movie\\电信诈骗微电影\\诈骗情景重现.mp4”
’ 开始播放
wmp.Ctlcontrols.play()
’ 设定播放模式为“屏幕自适应”
wmp.stretchToFit = True

以上是关于vb 中用 wmp.dll 控件制作媒体播放器时遇到的几个问题的主要内容,如果未能解决你的问题,请参考以下文章

在vb.net 中使用mediaPlayer控件

VB中用openfiledialog控件打开txt文件的问题

急求:VB能不能有背景音乐

C#中添加AxWindowsMediaPlayer控件后如何使用 谢谢好心人帮帮忙

VB6制作的自定义ocx控件

VB中用SetParent函数让应用程序在指定窗体中运行