用VB实现视频的实时回放 2001年 44期 如今,视频方面的软件可谓是数不胜数,比如微软公司的MediaPlayer、超级解霸、东方影都等等,它们都是十分优秀的视频软件,功能很强大,可以播放各种格式的视频节目,如十分流行的MPEG2和MPEG4、AVI、MIDI、MOV等。但是笔者却发现几乎没有一个软件有视频回放功能,即从当前的视频图像帧向已经播放的视频图像帧回退播放。这个功能很有用,举个很简单的例子,在足球比赛中,为了判断球员是否越位,经常需要慢镜头的正放和回放,又比如在银行的监控系统中,就需要回放功能来准确判断可疑人物的行为。所以,本文的目的就是实现这一功能,以弥补那些优秀软件留下的遗憾吧!   废话少说,让我们先来看看VB中的MediaPlay控件的功能吧!MediaPlay控件可以控制媒体的播放、停止、快进、后退及视频的一些属性等。本文中主要用到了它的Play(播放)、Pause(暂停)、Rate(控制速度)、Currentposition(当前的帧或时间位置)以及Displaymode(播放模式以帧方式或以时间方式显示)属性等。   首先,在VB的Form中加一个MediaPlay控件和一个Timer控件。然后采用控件的Click方法控制视频的显示方式:1.正常播放;2.慢速回放,同时在TIMER控件中控制回放的速度。下面是源代码,让我们一起来剖析它的功能。   'MediaPlay的Click方法   Private Sub Media1_Click(Button As Integer,ShiftState As Integer,X As Single,Y As Single)   Dim Isinverse As Boolean '控制显示方式和Timer控件的使能与否   If Isinverse=False Then '正常方式显示   Timer1.Enabled=False 'Timer控件失效   Isinverse=True   Media1.Rate=1 '视频的播放速率   Media1.Play '开始播放   Else '回放方式显示   Media1.Pause '播放停止   Isinverse = False   If Media1.DisplayMode!=mpFrames Then '变成帧显示模式   Media1.DisplayMode=mpFrames   End If   Timer1.Enabled = True 'Timer控件有效   End If   End Sub   'Timer控件定时中断方法   Private Sub Timer1_Timer() '使视频以每秒5帧的速度慢镜头回放(正常速度为每秒25帧)   Timer1.Interval = 200 '每0.2秒中断一次   Media1.CurrentPosition = Media1.CurrentPosition - 1 '每0.2秒倒退(回放)一帧   End Sub   使用方法:在MediaPlay显示窗口中左键点击奇数次时以方式1显示(正常播放),点击偶数次时以方式2显示(慢速回放),当然你也可以在Timer控件中控制回放速度(修改Timer.interval的值)。同时也可以在MediaPlay控件中添加显示模式(比如快速/慢速播放等),有兴趣的朋友不妨试一试。本程序在Windows 98/VB 6.0环境中调试通过。