VisualBasic5.0中实现视频画中画

2016-02-19 17:57 6 1 收藏

今天图老师小编给大家精心推荐个VisualBasic5.0中实现视频画中画教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

在VISUALBAISC5.0中可以使用播放视频动画文件(*.AVI)的方法在我们的软件中加入动画效果,但在软件中如何实现视频画中画的效果呢?经笔者摸索,发现利用WIDOWS95的API函数mciExecute、mciSendString和SetWindowPos可实现这一效果。
  
  下面笔者以最常用的大画面中叠加小画面为例来说明视频画中画的实现方法。
  
  一、建立窗体。进入VISUALBAISC5.0系统环境,建立一个新的窗体FORM1。
  
  二、建立视频窗口。在这里笔者使用了一大一小的两个图画框(PictureBox)作为视频窗口。选择控件工具箱中的PictureBox控件,在窗体中拉出两个方框(Picture1和Picture2)。其中Picture1为大画面,播放AVI01.AVI文件;Picture2为小画面,播放AVI02.AVI文件。
  
  三、编写相应控件的脚本。
  
  通用模块:
  
  DeclareFunctionmciExecuteLib"winmm.dll"(ByVallpstrCommandAsString)AsLong
  
  DeclareFunctionmciSendStringLib"winmm.dll"Alias"mciSendStringA"(ByVallpstrCommandAsString,ByVallpstrReturnStringAsString,ByValuReturnLengthAsLong,ByValhwndCallbackAsLong)AsLong
  DeclareFunctionSetWindowPosLib"user32"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong
  
  FORM1的ACTIVATE过程:
  
  DimAAAsLong
  
  DimPlayAviAsLong
  
  DimtmpValAsString
  
  DimKeyValSizeAsLong
  
  OnErrorResumeNext
  
  tmpVal=String$(1024,0)
  
  KeyValSize=1024
  
  PlayAvi=mciSendString("STATUSAVI01READY" Str(Picture2.hwnd),tmpVal,KeyValSize,0)
  
  IfPlayAvi263Then
  
  PlayAvi=mciExecute("closeAVI01")
  
  EndIf
  
  tmpVal=String$(1024,0)
  
  KeyValSize=1024
  
  PlayAvi=mciSendString("OPENAVI01.AVIALIASAVI01TYPEAVIVIDEOSTYLECHILDPARENT" Str(Picture2.hwnd) "WAIT",tmpVal,KeyValSize,0)
  
  x1Pos=Picture1.Width
  
  y1Pos=Picture1.Height
  
  tmpVal=String$(1024,0)
  
  KeyValSize=1024
  
  AA=mciSendString("STATUSAVI01WINDOWHANDLEWAIT",tmpVal,KeyValSize,0)
  
  If(Asc(Mid(tmpVal,KeyValSize,1))=0)Then
  
  tmpVal=Left(tmpVal,KeyValSize-1)
  
  Else
  
  tmpVal=Left(tmpVal,KeyValSize)
  
  EndIf
  
  AA=SetWindowPos(tmpVal,0,0,0,x1Pos,y1Pos,0)
  
  AA=mciExecute("WINDOWAVI01STATESHOW")
  
  tmpVal=String$(1024,0)
  
  KeyValSize=1024
  
  PlayAvi=mciSendString("STATUSAVI02READY" Str(Picture1.hwnd),tmpVal,KeyValSize,0)
  
  IfPlayAvi263Then
  
  PlayAvi=mciExecute("CLOSEAVI02")
  
  EndIf
  
  tmpVal=String$(1024,0)
  
  KeyValSize=1024
  
  PlayAvi=mciSendString("OPENAVI02.AVIALIASAVI02TYPEAVIVIDEOSTYLECHILDPARENT" Str(Picture1.hwnd) "WAIT",tmpVal,KeyValSize,0)
  
  x1Pos=Picture2.Width
  
  y1Pos=Picture2.Height
  
  tmpVal=String$(1024,0)
  
  KeyValSize=1024
  
  AA=mciSendString("STATUSAVI02WINDOWHANDLEWAIT",tmpVal,KeyValSize,0)
  
  If(Asc(Mid(tmpVal,KeyValSize,1))=0)Then
  
  tmpVal=Left(tmpVal,KeyValSize-1)
  
  Else
  
  tmpVal=Left(tmpVal,KeyValSize)
  
  EndIf
  
  AA=SetWindowPos(tmpVal,0,0,0,x1Pos,y1Pos,0)
  
  MciExecute"WINDOWAVI02STATESHOW"
  
  MciExecute"PLAYAVI01REPEAT"
  
  MciExecute"PLAYAVI02REPEAT"
  
  OnErrorGoTo0
  
  FORM1的QueryUnload过程:
  
  mciExecute"STOPAVI01"
  
  mciExecute"STOPAVI02"
  
  mciExecute"CLOSEAVI01"
  
  mciExecute"CLOSEAVI02"
  
  运行此程序可见两个动画同时播放,实现了视频画中画的效果。以上程序在VISUALBAISC5.0及WINDOWS95中运行通过。->

来源:http://www.tulaoshi.com/n/20160219/1616443.html

延伸阅读
画中画相机怎么用   画中画相机是一款可以拍出多种特效的相机应用软件,可以帮助用户从构图、色彩等方面彻底美化,让你的照片具有独特的艺术气质,那么画中画相机怎么用,画中画相机最新版怎么拍照,下面小编就给大家带来详细的介绍。 1、打开画中画相机 ,系统提供金典,素材,拼图相框等服务选项 2、选择经典,即可进...
画中画相机怎么拍照?   打开画中画相机,系统提供金典,素材,拼图相框等服务选项 选择经典,即可进入金典的画中画拍照模式 相框和素材也提供了很多好玩的照片模版
iPhone的画中画功能怎么设置?   今天,图老师小编将为大家分享的是iPhone画中画的设置方法。很多网友可能还对iPad Air2带来的分屏多任务记忆犹新,而画中画就是分屏多任务功能的一种表现方式。那么,iPhone也可以实现画中画功能吗?其实,只需要下载一个插件,就可以轻松实现这一功能了,下面就一起来看看今天的iPhone教程吧! ...
教你拍摄画中画的风光作品   《画中画》拍摄于2月份的一个美丽清晨,相当于国内的8月份的盛夏吧,感谢摄友Ryan和Between的陪伴,Ryan据说一夜没有睡,就为了等待黎明的到来了。这个也算摄影的魅力吧,让人神魂颠倒。 我们驱车向南大约30千米,天完全没有亮,6点前就赶到了莫阿娜海滩(阿德莱德南郊区),整个拍摄大约持续了一个小...
画中画相机素材怎么删除   1)首先打开画中画相机软件,进入首页,点击在线素材按键。   2)进入素材界面,点击管理按键,进入管理界面后,在按删除按键。  

经验教程

499

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部