我用picturebox,和mmcontrol,做的播放器播放mpeg文件(只播放mpeg)
调节picturebox的大小,后发现mpeg 的视图大小不会跟着变
有没有办法解决
调节picturebox的大小,后发现mpeg 的视图大小不会跟着变
有没有办法解决
解决方案 »
- 问版主?有的人不接贴 最后怎么办
- 超级郁闷:Active Ocx方面的难题:
- VB里面的一个问题,请大家来回答下
- VB中主菜单中的快捷键怎么设置?
- 在vb的IDE中查看calender控件的属性,vb6.exe立刻报错并崩溃,各位有没有遇到过类似问题?何解?
- 新手提问:如何判断向数据库中添加数据成功,用ado方法,不用adodc控件
- winsock问题
- 请教:如何从一个文件中读取多个参数
- 如何屏蔽掉shockwave(flash控件)的鼠标右键事件??
- 急!怎么用VB取得ACCESS2000中某字段FLD在表TBL中的列标题?
- 大家会不会在VB中用video for windows啊?
- 关于DTPicker控件查询日期的问题,想大家帮帮忙!
不能改用其他控件
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As LongPrivate Sub Command1_Click()
PlayVideo "c:\123.avi", False, Picture1.hwnd
End SubPrivate Sub Command2_Click()
Picture1.Width = Picture1.Width + Picture1.Width * 0.1
Picture1.Height = Picture1.Height + Picture1.Height * 0.1
End SubPrivate Sub Form_Load()
Picture1.ScaleMode = vbPixels
End SubPrivate Sub Form_Unload(Cancel As Integer)
mciSendString "close video", 0, 0, 0
End SubPrivate Sub Picture1_Resize()
mciSendString "put video window at 0 0 " & Picture1.ScaleWidth & " " & Picture1.ScaleHeight, 0, 0, 0
End Sub' 播放指定磁盘中的视频文件
' FilaName 为视频文件的文件名, FullScreen 为是否全屏幕播放, hwnd 为播放窗口的句柄
Function PlayVideo(ByVal FileName As String, ByVal FullScreen As Boolean, Optional ByVal hwnd As Long) As Boolean
mciSendString "close video", 0, 0, 0
If hwnd = 0 Then
mciSendString "open " & FileName & " alias video", 0, 0, 0
Else
mciSendString "open " & FileName & " alias video parent " & hwnd & " style child", 0, 0, 0
End If
mciSendString "set video time format ms", 0, 0, 0
PlayVideo = mciSendString("play video from 0 " & IIf(FullScreen, "fullscreen", ""), 0, 0, 0)
End Function
谢谢您的例子您有没有发现
没有按Command2改变Picture1大小前,,
不管Picture1多大
视屏的大小都是352*288(我的程序只播放MPEG文件)我可能没有说清楚,在生成.exe时视屏的大小是固定的
就是设计时确定大小,我用这样的怪着:就是在播放后,马上加了改大小
( PlayVideo "D:\work\class\driver\Cache1.mpg", False, Picture1.hwnd
Picture1.Width = Picture1.Width + Picture1.Width * 0.01
Picture1.Height = Picture1.Height + Picture1.Height * 0.01)
可是又有一个问题,屏幕抖动(因为视屏播放过程有要求不可以抖动)还有一个想问:如果换成这两句
Picture1.Width = Picture1.Width + 1
Picture1.Height = Picture1.Height + 1
就不行(视屏不改变大小),不过如果在Command2多点几下就可以,这是什么原因
mciSendString "close MyAVI", vbNullString, 0, 0
mciCommand = "open " & playname & " alias MyAVI"
mciCommand = mciCommand & " parent " & Picture1.hWnd & " style child"
mciSendString mciCommand, vbNullString, 0, 0
With Picture1
.ScaleMode = vbPixels
mciCommand = "put MyAVI window at 0 0 " & _
.ScaleWidth & " " & .ScaleHeight
mciSendString mciCommand, vbNullString, 0, 0
End With
mciSendString "play MyAVI", vbNullString, 0, 0
借贵帖一用,谢谢!登山者:
我看了很多你回复的关于视频的帖,请教一个问题:
如何在视频的播放窗口上放一个透明的控件,如Label.