📄 subject_64119.htm
字号:
<p>
序号:64119 发表者:贾志恒 发表日期:2003-12-08 22:55:52
<br>主题:请教一个activemovie控件的使用
<br>内容:我想播放avi文件时<BR>一开始便是原始大小的二分之一<BR><BR>已经在属性里设置了MovieWindowsize为4 - 4 - 1/2 of screen size<BR>怎么播放avi文件是还是原始大小?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:bird 回复日期:2003-12-09 08:46:52
<br>内容:ActiveMovie不仅是一个播放器,同时也是ActiveX套件中的一 个控件,它可以用来播放媒体文件,它支持绝大部分目前通用的媒 体格式,它可以播放Wave、Midi、Avi、MPEG、QuickTime Movie等 格式文件,甚至还可以用它来看影碟。由于它还是个控件,所以可 以在VB或VC的程序中调用它。对它的操作相当简单,只需提供要播 放的文件名就可以用Run、Pause、Stop方法来播放、暂停和停止该 媒体文件了。那么,如何利用微软提供的ActiveMovie控件来创建 媒体文件浏览器呢?在Microsoft Visual Basic 5.0(企业版)环 境下可以轻松地达到这个目的。本文将用一个具体实例手把手地教 你活用ActiveMovie控件。 <BR> 1.程序设计 <BR> 要用ActiveMovie控件创建媒体文件浏览器,并且这个浏览器 应该能同时浏览某个目录中的所有媒体文件,那就需要创建一个文 件浏览系统。这在VB中只需要一个驱动器列表框 (DriverListBox)、一个目录列表框(DirListBox)和一个文件列表 框(FileListBox)就可轻松地完成了,下面就给出其详细的步骤。 <BR> 2.操作步骤 <BR> (1)启动Microsoft Visual Basic 5.0,创建一个“标准EXE” 的新工程; <BR> (2)为Form1设置一个合适的宽度、长度,并改变如下属性: <BR> (名称)= FrmAM <BR> KeyPreview=Ture <BR> 改变KeyPreview属性是为了让程序能够处理快捷键,这样,无 论当前焦点在哪个控件上,窗体首先截获的是键盘消息; <BR> (3)选择“工程”菜单中的“部件”命令,在部件对话框中选 中"Microsoft ActiveMovie Control",单击“确定”按钮,为当前的工具箱添加ActiveMovie控件; <BR> <BR> 图1. <BR> (4)这时在“工具箱”中出现"ActiveMovie"控件图标,双击它 以向窗体中添加一个ActiveMovie控件,并将其放置在Form1窗体的 右上方,属性设置如下: <BR> (名称)=AM1 <BR> MovieWindowSize=4 <BR> ShowPositionControls=True <BR> ShowSelectionControls=True <BR> 这样就可以用ActiveMovie控件所提供的控制按钮来播放媒体 文件了; <BR> (5)在Form1的左上方放置一个驱动器列表框控件,然后在其下 方添加一个目录列表框控件,紧接着再在其下方放置一个文件列表 框控件,并修改文件列表框的Pattern属性为*.AVI、*.MOV、*. DAT、*.MPG、*.WAV、*.MID、*.QT、*.MPEG,这是因为 ActiveMoive只能接受这些文件类型,这样,文件列表框就只显示 iveMoive能打开的文件了。 <BR> (6)在Drive1的Change事件中添加如下代码后,当改变驱动器 列表框中的盘符时,目录列表框将随之变动; <BR> Private Sub Drive1_Change() <BR> Dir1.Path = Drive1.Drive <BR> End Sub <BR> (7)在Dir1的Change事件中添加如下代码后,改变目录列表框 中的目录时,文件列表框中的目录也将随之变动; <BR> Private Sub Dir1_Change() <BR> File1.Path = Dir1.Path <BR> End Sub <BR> 至此,文件浏览系统就创建好了; <BR> (8)在File1的Click事件中添加如下代码后,用户选中某个文 件时,就会将文件名提供给ActiveMovie控件,并将此文件名显示 在窗体的标题栏中; <BR> Private Sub File1_Click() <BR> AM1.filename = <BR> File1.Path & "\" & File1.filename <BR> Caption = AM1.filename <BR> End Sub <BR> (9)在Form1的KeyDown事件中添加如下代码: <BR> Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) <BR> Select Case KeyCode <BR> Case vbKeySpace <BR> Select Case AM1.CurrentState <BR> Case amvStopped <BR> AM1.Run <BR> Case amvRunning <BR> AM1.Pause <BR> Case amvPaused <BR> AM1.Run <BR> End Select <BR> Case vbKeyA <BR> If AM1.MovieWindowSize =_ <BR> amvOneHalfScreen Then <BR> AM1.FullScreenMode = True <BR> If AM1.CurrentState = <BR> amvRunning Then <BR> AM1.Pause <BR> AM1.Run <BR> End If <BR> End If <BR> AM1.MovieWindowSize = _ <BR> IIf(AM1.MovieWindowSize <4,_ <BR> AM1.MovieWindowSize + 1, 4) <BR> Case vbKeyS <BR> AM1.FullScreenMode = False <BR> AM1.MovieWindowSize =_ <BR> IIf(AM1.MovieWindowSize > 2, <BR> AM1.MovieWindowSize - 1, 2) <BR> End Select <BR> End Sub <BR> 在本事件中,用KeyCode判断用户按下了什么键,如果是 vbKeySpace(空格键),就用ActiveMovie控件的CurrentState属 性来判断当前的状态;如果是amvStopped或amvPaused,就执行播 放命令AM1.Run;如果是amvRunning,就执行暂停命令AM1.Pause; 如果用户按的是"A"键(vbKeyA),就放大屏幕尺寸。由于 ActiveMovie控件的MovieWindowSize属性的取值2、3、4分别表示 1/16屏幕、1/4屏幕、1/2屏幕,所以,为了放大屏幕,只需在此范 围内将MovieWindowSize的属性值加1即可。当MovieWindowSize的 值已经是4,而用户又按下了"A"键时,就要将播放窗口扩大到全 屏,即把FullScreenMode属性设为True,但这时并不立即生效,还 须执行暂停、再播放的过程。注意,在全屏方式下,窗体将失去输 入焦点,快捷键不再起作用,这时只有单击鼠标左键,才能回到刚 才的状态。如果用户按的是"S"键(vbKeyS),则应将 MovieWindowSize的值减1,并且将FullScreenMode属性设为 False。 <BR> (10)保存该工程并运行该程序。 <BR> 3.运行结果 <BR> 通过目录和文件列表框选择多媒体文件,然后用ActiveMovie 的播放和暂停键操作,或者用空格键播放和暂停,还可以用"A"和 "S"键调整播放窗口的大小x。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:bird 回复日期:2003-12-09 08:49:00
<br>内容:以上是转载的vb文章,我没有用过,但看了一下,应该说使用ActiveMovie控件是没问题了!<BR>你仔细检查一下你的程序,看是否有错误!<BR><BR><BR>ps.也可以贴代码上来大家一起看看!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:贾志恒 回复日期:2003-12-10 15:22:19
<br>内容:我查了一下msdn<BR>Setting Value Description <BR>amvOriginalSize 0 (Default) Uses the authored size. <BR>amvDoubleOriginalSize 1 Increases the image projection size to twice the authored size. <BR>amvOneSixteenthScreen 2 Projects the images onto an area the size of one-sixteenth of the screen. <BR>amvOneFourthScreen 3 Projects the images onto an area the size of one-quarter of the screen. <BR>amvOneHalfScreen 4 Projects the images onto an area the size of half of the screen<BR><BR>最后用了<BR> m_ActiveMovie.SetFileName("xx.avi");<BR> <BR> m_ActiveMovie.SetMovieWindowSize(2);<BR>搞定了<BR>多谢兄弟<BR>^_^<BR>郁闷了我好几天的问题终于解决了 <BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -