微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题用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环境中调试通过。