用Visual Basic实现多画面播放功能(2)

2008-02-23 06:53:10来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折




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播放完后乖乖地“自动重播”(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 ()


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


end 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:运行时显示/隐藏控制面板;


(3) allowhidedisplay:运行时显示/隐藏显示面板;


(4) appearance:设置面板的外观(平面或3d);


(5) autostart:设置打开vcd文件后是否“自动播放”;


(6) enablecontextmenu:当在画面中右键单击时是否允许出现控制菜单(设成false时可以显示您自行设计的控制菜单);


(7) filename:设置activemovie播放的文件名;


(8) playcount:设置播放次数;


(9) rate:设置播放时的速率,为1时为正常播放,大于1时为快进(过大时可能无声、无影);


(10) selectionstart:设置播放的开始位置(缺省值为0);


(11) selectionend:设置播放的结束位置(缺省值为-1);


(12) showcontrols:显示/隐藏控制面板;


(13) showdisplay:显示/隐藏显示面板;


(14) showpositioncontrols:在控制面板中显示/隐藏位置按钮;


(15) showselectioncontrols:在控制面板中显示/隐藏选择按钮;


(16) showtracker:在控制面板中显示/隐藏音轨栏;


(17) tooltiptext:当光标停留在画面时出现的提示文字。


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


如果动画控件mciwnd不在工具栏上,可按如下方法进行添加:


(1)从“项目”中选择“部件”,再选中控件mciwnd control (mciwndx.ocx),mciwnd控件即出现在“工具箱”中。


mciwnd控件的属性有:


1) autosizemovie:控制画面是否自动适应窗口,为false可能会遮掩掉部分画面,结合autosizewindows使用;


2) autosizewindows:控制画面是否自动适应原来的影片的大小,为false时可能会挤压或拉长画面,使画面变形,结合autosizemovie使用;


3) defaultcontextmenuenabled:当在画面中右键单击时是否允许出现控制菜单(缺省值为true,这样您将不能触发鼠标右键的mousedown、mouseup和dblclick事件 ;设成false时可以显示您自行设计的控制菜单);


4) filename:指定设备所要播放的文件;


5) menu:显示/隐藏播放条上的控制菜单并设置在控制面板上单击右键时是否弹出控制菜单;


6) playbar:显示/隐藏播放条;


7) positionstring:返回打开的mci设备的当前位置;


8) record:设置控制菜单的“保存”命令是否可用;


9) repeat:设置播放时是否“自动重播”;


10)speed:设置播放时的速率,为1000时表示正常播放,大于1000时为快进(过大时可能无声、无影),小于1000时为慢进;


11)tooltiptext:返回/设置当鼠标停留在画面时的文本;


12)timefreq:指定时间周期;


13)volume:设置mci设置的声音大小,1000为正常值;


14)zoom:设置画面的缩放率。


在新建窗体上添加一个mciwnd控件,并在控件上单击鼠标右键,选取“属性”(或直接在属性栏中进行设置),在filename中设置您需要播放的vcd文件,按f5键则开始运行。然后单击“播放”键,就会自动播放vcd。右键单击图像,可以直接对图像的播放、暂停等进行控制,并且可以在播放时直接设置屏幕大小(1/2屏、正常屏幕、倍屏)和控制音量,并对画面进行打开、保存、关闭、复制、配置(显示xing的有关信息)等操作。但是,要想更好地控制画面,我们还得编程,程序参见activemovie控件的编程。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何用VB准确计算年龄

下一篇:VB中位图旋转的实现