ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:20.84KB ,
资源ID:5821913      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5821913.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用Visual Basic实现多画面播放功能.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用Visual Basic实现多画面播放功能.docx

1、用Visual Basic实现多画面播放功能用Visual Basic实现多画面播放功能之一出处:eNet学院责任编辑:zwg02-1-7 16:38 作者:何发武 所谓动态画中画,指的是在大画面视频播放时,小画面在大画面中也播放另外的画面,或者是两个画面都在做某种活动。 笔者前段时间用Visual Basic开发了一个vcd播放程序,可以实现以下功能: (1) 可以多屏播放,也就是画中画功能,可同时播放几个不同的画面; (2) 可以同时播放cd-rom中的视频音频文件(当然,在硬盘中播放速度会更快些) (3)支持多种文件格式(如.dat、 .wav、 .avi、 .mov、 .mmm、 .m

2、id、 .rmi、 .mpg、 .mpa、 .mpv等); (4) 自带画面美观且功能齐全的cd播放程序; (5) 增强了鼠标的右键功能,用它可以控制各画面的大小(1/16、1/4、1/2、1、2倍和全屏)、播放、暂停等; (6) 控制声音、图像、时间/帧显示转换、自动重播等; (7) 控制条随意拖动播放,再加上定时播放、自定义播放时间等播放方式,可使您更加惬意地控制vcd; (8) 屏幕可随意拖动,画面可任意放缩。 vcd中的影像文件都在光盘的mpegav目录下,文件名只有两种:avxeq01.dat或music01 .dat(如果是音乐版的卡拉ok,则还有music02 .dat等。) 可

3、视动画控件activemovie是microsoft公司的控件,从不成熟的1.0、1.2到2.0,每次都有了很大的改进,如1.0版本中有几个属性是只读的(例如,displaymode只能为amvtime,而不能改为amvframes)。该控件支持音频文件(.wav、.mid、.rmi)、影片文件(.avi、.mov、.mmm、.mpeg、.mpg、.mpa、.mpv)和vcd文件(.dat)等。播放时若用鼠标右键单击画面,则可以直接对画面的播放、暂停、停止等进行控制,读者还可以自行在“属性”栏中对影片播放进行控制设置,诸如设置“播放次数”、“音量”、“影片大小(1/16、1/4、1/2、1、2

4、倍和全屏”、“面板”、“颜色”、“过滤器”等。这种技术的实现实际上是vb调用activemovie控制器来完成的,而activemovie控制器内嵌了microsoft mpeg音频解码器和microsoft mpeg视频解码器。首先,我们建立一个“项目”,依次选择“项目/部件”,然后添加microsoft activemoviecontrol (amovie.ocx)、microsoft commandialog control(comdlg32.ocx),控件即出现在“工具箱”中。将上述两个控件加进窗体,再单击“菜单”工具栏,建立一个主菜单项:“文件”(file)及其子菜单项:“打开a画面

5、”(opena)。 在opena中加入如下代码: private sub opena-click () on error resume next commondialog1.filter =video file (*.dat)*.datwave file (*.wav)avi file (*.avi)(*.avi)movie file (*.mov)(*.mov)media file (*.mmm)(*.mmm)mid file (*.mid;*.rmi)(*.mid;*.rmi)mpeg file (*.mpeg)(*.mpeg)all file (*.*)*.* commondialog1

6、.filterindex =1 commondialog1.showopen activemove1.filename = commondialog1. filename activemove1.height = form1.height activemove1.width =form1.width activemove1.run end sub 这是对单个的activemovie1进行控制。还可以在“文件”(file)中依次加入子菜单:“打开b画面”(openb)、“打开c画面”(openc),并相应地加入activemovie2、 activemovie3等多个画面,将上述程序代码略为改动

7、后加入。这样,当您按下f5键即运行程序,打开您想要播放的vcd文件就可以欣赏vcd了。在屏幕上单击右键,还可以控制画面呢! 现在是否就满足了呢?不行!我们再增加一个用鼠标任意拖动屏幕的功能: private sub activemovie1-mousedown (button as integer ,shift as integer ,x as single ,y as single) activemovie1.drag 1 x1=x y1=y end sub我们还增加了一个定义任意播放时间的主菜单项:“时间”(time)及其子菜单项:“画面a时间”(settimea): private su

8、b settimea-click () on error resume next dim r as integer r=inputbox (请输入时间(分钟:0-60) r=r*60 activemovie1.currentposition =int(r) activemovie1.run end sub currentposition是控制vcd播放的时间:(1)activemovie1.currentposition =0(从头开始);(2)activemovie1.currentposition =900(15分钟后);(3)activemovie1.currentpo-sition =

9、1800(30分钟后)。依次类推,但是不能超过60分钟。 我们再增加一个主菜单项:“屏幕”(screen)及其子菜单项:“全屏a”(fullscreena),用来控制屏幕大小: private sub fullscreena -click () on error resume next activemovie1.fullscreenmode=true activemovie1.run activemovie1.moviewindowsize =amvmaximized end sub fullscreenmode用来控制画面是否为全屏,当它为true时则全屏方式播放vcd,为false时则取消

10、全屏方式。 moviewindowsize也是控制屏幕的大小:(1)全屏大小:activemovie1.moviewindow-size =amvmaximized;(2)正常大小:activemovie1.moviewindowsize =amvoriginalsize;(3)倍屏:activemovie1.moviewindowsize =amvdoubleoriginalsize;(4)1/2屏:activemovie1.moviewindowsize =amvonehalscreen;(5)1/4屏:activemovie1.movie-windowsize =amvonefourth

11、screen;(6)1/16屏:activemovie1.moviewindowsize =amvonesixteenscreen。 我们可以随意控制屏幕了。下面,让我们再把声音控制一下吧! microsoft activemovie控件2.0版的确比1.2、1.0改善不少!1.2、1.0版在我的创新awe64顶级声卡中的表现很不尽人意,但2.0版却把我拉“科达”音箱功能在创新awe64的驱动下发挥得淋漓尽致!想必microsoft 公司对activemovie控制器中内嵌的mpeg音频解码器下了苦功! 我们在菜单中增加主菜单项:“声音”及其子菜单项“增加”(soundadd棗快捷键设置为f4

12、)和“减少”(soundduce棗快捷键设置为f5),分别用来控制声音的增强: private sub soundadd -click () activemovie1.volume= activemovie1.volume +100 end sub private sub soundduce -click () activemovie1.volume= activemovie1.volume -100 end sub 当然,我们还想增加“静音”(soundno)功能。经我反复试验,当activemovie1.volume= -4000时效果最好! 我们还需要让vcd播放完后乖乖地“自动重播”(

13、autoreplay): private sub autoreplay -click () activemovie1.autorewind= true autorewind设置播放时是否“自动播放” end sub为了让vcd播放时交替“显示帧”(showframe)或“显示时间”(showtime),可在displaymode 中进行设置: private sub showframe -click () on error resume next activemovie1. displaymode =amvframes end sub private sub showtime -click (

14、) on error resume next activemovie1. displaymode =amvtimes end sub 经过上面的设计,功能也凑合了。行了吗?别急!我们还想将界面搞得漂亮一点。例如,增加工具栏,加强鼠标右键的功能和画面中的双击功能等。 如果我们想在vcd画面中单击右键弹出菜单,则可添加如下代码: private sub activemovie1-mousedown (button as integer,shift as integer ,x as single ,y as single) if button = 2 then popupmenu menuok en

15、d sub 其中,menuok是我们在菜单中额外增加的,子菜单内容可自定义(但要记住在设计时将名为“menuok”的菜单设置成不可见)。例如:(1)控制vcd“暂停”: activemovie1.parse; (2)控制vcd“运行”: activemovie1.run;(3)控制vcd“停止”: activemovie1.stop;(4)控制vcd“自动播放”: activemovie1.autostart=true。activemovie还有非常有用的其它属性: (1) allowchangedisplaymode:运行时是否允许改变显示的模式; (2) allowhidecontrols

16、:运行时显示/隐藏控制面板; (3) allowhidedisplay:运行时显示/隐藏显示面板; (4) appearance:设置面板的外观(平面或3d); (5) autostart:设置打开vcd文件后是否“自动播放”; (6) enablecontextmenu:当在画面中右键单击时是否允许出现控制菜单(设成false时可以显示您自行设计的控制菜单); (7) filename:设置activemovie播放的文件名; (8) playcount:设置播放次数; (9) rate:设置播放时的速率,为1时为正常播放,大于1时为快进(过大时可能无声、无影); (10) selectio

17、nstart:设置播放的开始位置(缺省值为0); (11) selectionend:设置播放的结束位置(缺省值为-1); (12) showcontrols:显示/隐藏控制面板; (13) showdisplay:显示/隐藏显示面板; (14) showpositioncontrols:在控制面板中显示/隐藏位置按钮; (15) showselectioncontrols:在控制面板中显示/隐藏选择按钮; (16) showtracker:在控制面板中显示/隐藏音轨栏; (17) tooltiptext:当光标停留在画面时出现的提示文字。 我们除了可用microsoft的activemovi

18、e控件进行开发外,还可以用mciwnd控件来进行开发(可惜二者不能同时使用。换言之,单纯用mciwnd无法制作画中画,但mciwnd可以和activemovie“和平共处”,这样我们就可以用mciwnd制作一个“特别版vcd”。值得一提的是,mciwnd声音解码非常出色,不愧“师出名门”棗xing)。这种技术的实现实际上是vb借助于xing的mci驱动程序来实现的,如果没有xing的dll程序运行时就会出错。但这种技术实现得非常巧妙,比用vb中的ole技术来得更加隐蔽,可以设计成自己的vcd播放程序。如果动画控件mciwnd不在工具栏上,可按如下方法进行添加: (1)从“项目”中选择“部件”,

19、再选中控件mciwnd control (mciwndx.ocx),mciwnd控件即出现在“工具箱”中。 mciwnd控件的属性有: 1) autosizemovie:控制画面是否自动适应窗口,为false可能会遮掩掉部分画面,结合autosizewindows使用; 2) autosizewindows:控制画面是否自动适应原来的影片的大小,为false时可能会挤压或拉长画面,使画面变形,结合autosizemovie使用; 3) defaultcontextmenuenabled:当在画面中右键单击时是否允许出现控制菜单(缺省值为true,这样您将不能触发鼠标右键的mousedown、m

20、ouseup和dblclick事件 ;设成false时可以显示您自行设计的控制菜单); 4) filename:指定设备所要播放的文件; 5) menu:显示/隐藏播放条上的控制菜单并设置在控制面板上单击右键时是否弹出控制菜单; 6) playbar:显示/隐藏播放条; 7) positionstring:返回打开的mci设备的当前位置; 8) record:设置控制菜单的“保存”命令是否可用; 9) repeat:设置播放时是否“自动重播”; 10)speed:设置播放时的速率,为1000时表示正常播放,大于1000时为快进(过大时可能无声、无影),小于1000时为慢进; 11)toolti

21、ptext:返回/设置当鼠标停留在画面时的文本; 12)timefreq:指定时间周期; 13)volume:设置mci设置的声音大小,1000为正常值; 14)zoom:设置画面的缩放率。 在新建窗体上添加一个mciwnd控件,并在控件上单击鼠标右键,选取“属性”(或直接在属性栏中进行设置),在filename中设置您需要播放的vcd文件,按f5键则开始运行。然后单击“播放”键,就会自动播放vcd。右键单击图像,可以直接对图像的播放、暂停等进行控制,并且可以在播放时直接设置屏幕大小(1/2屏、正常屏幕、倍屏)和控制音量,并对画面进行打开、保存、关闭、复制、配置(显示xing的有关信息)等操作

22、。但是,要想更好地控制画面,我们还得编程,程序参见activemovie控件的编程。 令人鼓舞的是,该控件几乎支持所有上述的多媒体文件。在“命令”行中可直接输入丰富的mci指令(如基本的play、close、stop、open、info、capability、pause、put、record、save、resume、seek、set等等。) 怎么样?您的vcd播放器可以横空出世了吧!?如果您觉得意犹未尽的话,则还可以用windowsapi函数进行开发,只不过api所能控制的就简单多了(windowsapi函数也是借用mci驱动程序来实现的。)windows中mciexecute函数支持wav、

23、rmi、mid、avi(可以有声音)等文件。可在声明中加入如下代码: private declare function mciexecute lib winmmm.dll(byval lpstrcommand as string)as long private sub form-load () dim x x=mciexecute (play e:mpegavmusic01.dat) 如果您的vcd中mpegav目录下的文件名不是music01.dat,则改为avseq01.dat (下同) end sub 按f5运行程序即自动播放vcd。 windows中mcisendstring函数同样可

24、以播放上述类型的文件。在声明中加入如下代码: private declare function mcisendstring lib winmmm.dll alias mcisendstringa(byval lpstrcommand as string, byval lpstrreturnstring as string, byval ureturnlength as long,byval hwndcallback as long) as long private sub form-load () dim x x= mcisendstring (play e:mpegavmusic01.dat

25、,0&,0,0) end sub按f5运行程序也自动播放vcd。 再给出一个小程序,运行时它能自动播放您的cd音乐,然后将控制权还给vb应用程序,但不影响计算机的其它操作(当然您的cd-rom中要有cd才行!)。在声明中加入如下代码: private declare function mcisendstring lib winmmm.dll alias mcisendstringa(byval lpstrcommand as string, byval lpstrreturnstring as string, byval ureturnlength as long, byval hwndcallback as long) as long private sub form-load () s$=play cdaudioa x&= mcisendstring (s$,0&,0,0) end sub 上述程序在中文windows 95 osr2、Visual Basic中文专业版下调试通过。 多媒体是明天计算机的核心。极好的声音效果和音乐、完全的运动视频和动画给我们所需的信息带来了生机和活力,很难相信没有图像、声音和动画的程序是完美的。通过上面的讨论,我们会由衷地叹服:在visual basic中控制各种多媒体设备是多么地轻而易举,简直是信手拈来!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1