您的位置:首页 > 其它

MFC控件:ActiveMovie属性说明,使用资料

2013-09-15 10:49 501 查看
控件本身虽然是微软作的但还是觉得有些不足,有些接口提供的不够友好,用起来要自己建立函数,有些在较低版本的MSDN中都查不到,很麻烦啊。

正文:

实现该控件的注册

 
在VC里没有ActiveMovieControl Object这个控件

"开始"->"运行"->"输入regsvr32 msdxm.ocx"->"确定"

会弹出一个对话框说成功的!! 注册成功,

进入VC Project->Add To Project->Components And Controls.点击打开出现的Components And Controls Gallery文件,选择其中的ActiveMovie Control Object,单击Insert

就可以在VC控件选择栏里看到该控件的图标了!

ActiveMovie控件是微软公司推出的用于多媒体程序设计的控件,它提供了非常完善的音频和视频媒体文件的回放功能,能支持多种文件格式,从最常见的WAV文件和AVI文件到使用MPEG压缩格式的VCD视频文件,都可以正常的进行播放。控件能根据文件后缀进行自动判别设备类型,并完成相应的控制。因此,若正在编写的应用程序需要提供多媒体支持,那么使用ActiveMovie控件是一个很好的主意。事实上,很多优秀的多媒体应用程序,其内部的多媒体回放就是利用ActiveMovie控件来实现。只要精心地设计应用程序的用户界面,我们一样可以开发出功能齐全、外观漂亮、具有相当水准的多媒体播放器。而且,在Windows
95/98和Windows NT的最新版本中,ActiveMovie控件已作为操作系统的一部分来提供,即使用户系统中没有安装ActiveMovie控件,Microsoft的许可协议也允许在你的应用程序的发行包中发布ActiveMovie的运行时文件。

本文将首先介绍ActiveMovie控件一些特有的属性、方法和事件,然后使用该控件开发一个具有一定功能的多媒体播放器,最后结合本例谈一谈使用ActiveMovie控件进行多媒体开发时需要注意的几个问题。

一、ActiveMovie控件特有的属性、方法和事件

ActiveMovie控件的特有属性及相关描述见表1。其它各控件常有的属性如BorderStyle、

DisplayForeColor、hWnd等,该控件也支持。

ActiveMovie控件特有的属性表 表1

属性 说明

CurrentState 指示控件的状态:stopped、paused、running

DisplayMode 显示模式,即以时间方式还是帧方式

FileName 指定该控件要操作的源文件完整名字

Rate 指示媒体流的回放率

ReadyState 指示控件状态,是否已经装入源文件

SelectionEnd 指示播放媒体流的结束位置

SelectionStart 指示播放媒体流的开始位置

CurrentPosition 指示播放媒体流的当前位置

Volume 设置音量

ActiveMovie控件常用方法有RUN、STOP、PAUSE三个,分别控制媒体流的播放、停止和暂停。使用时直接调用它们即可。其它通用方法如Drag 、Move、SetFocus等,该控件也支持。

ActiveMovie控件的特有事件及相关描述见表2。

ActiveMovie控件特有的事件表 表2

事件 说明

DisplayModeChange 当DisplayMode属性值发生变化时触发

OpenComplete 当源文件完全载入时触发

PositionChange 当媒体流的当前位置改变时触发

ReadyStateChange 当控件的ReadyState属性值改变时触发

StateChange 当播放器的状态改变时触发

Error 处理控件的出错事件

1.Active movie control object 的功能

Authorware作为强大的多媒体著作工具,支持主流的媒体格式,通过调用ActiveMovie控件还可以支持更多的媒体类型。ActiveMovie控件支持MIDI文件(*.mid、*.rmi、*.midi)、QuickTime文件(*.mov、*.qt)、Winodws Media(*.asf、*.wm、*.wma)、电影文件(MPEG)(*.mpeg、*.mpg、*.m1v、*.mpe、 *.mpv)、媒体播放列表(*.asx、*.wax、*.m3u)、视频文件(*.avi、*.wmv)、音频文件(*.wav、*.and、*.au、*.aif、*.mp2、*.mp3、*.mpa)等(在系统中所安装的Windows
Media Player的版本不同,所支持的格式有所不同)。

2.Active movie control object的常用属性

"AllowChangeDisplaySize"--运行时是否允许改变显示大小。默认为TRUE。

"CurrentPosition"--当前的播放位置。默认值为-1。

"DisplayMode"--设置播放时的显示模式,可选值为"0-Time"--显示时间、"1-Frames"--显示帧。默认为"0-Time"。

"DisplaySize"--设置播放时的显示大小,可选值有"0-0-Default Size"--默认大小、"1-1-Half Size"--正常大小的一半、"2-2-Double Size"--正常大小的双倍、"3-3-FullScreen"--全屏、"4-4-Fit to Size"--适当大小、"5-5-One Sixteenth Screen"--1/16屏幕大小、"6-6-One Fourth Screen"--1/4屏幕大小、"7-7 One Half Screen"--1/2屏幕大小。默认为"0-0-Default
Size"。

"EnableContextMenu"--在画面中按右键时,是否允许出现控制菜单。默认为TRUE。

"Enabled"--设置控件是否有用。默认为TRUE。

"Filename"--设置播放的文件名。

"EnableFullScreenControls"--设置是否有全屏控制。默认为FALSE。

"PlayCount"--设置播放次数。默认值为1。

"PlayState"--播放状态,其值随控件中的文件播放情况而变,可能是"0-Playback is stopped"--播放已停止、"1-Playback is paused"--播放被暂停、"2-Stream is playing"--数据流正在播放、"3-Wait for stream to begin"--等待数据流开始、"4-Stream is scanning forward"--正在向前搜索、"5- Stream is scanning in reverse"--正在向后搜索、"6-Stream
has not been Opened"--还未打开。

"Rate"--设置播放时的速率,为1时是正常播放,大于1时是快进。

"ReadyState"--准备状态,其值随控件中的文件播放情况而变,可能是"0-0-Uninitialized"--未初始化、"1-1-Loading"--正在载入、"3-3-Interactive"--正在连接、"4-4-Complete"--已完成。

"SelectionEnd"--设置播放的结束位置。默认值为-1,即播放到结尾。

"SelectionStart"--设置播放的开始位置。默认值为-1,即从头播放。

"ShowControls"--是否显示控制面板。默认为TRUE。

"ShowDisplay"--是否显示显示面板。默认为FALSE。

"ShowPositionControls"--在控制面板中是否显示位置按钮。默认为TRUE。

"ShowTracker"--在控制面板中是否显示音轨栏。默认为FALSE。

"Volume"--设置音量。默认值为-320。

3.Active movie control object的常用方法

"FastForward"--快进

"FastReverse"--快退

"Next"--下一个

"Pause"--暂停

"Play"--播放

"Previous"--前一个

"Stop"--停止

4.Active movie control object的常用事件

"EndofStream"--当播放结束时产生此事件

"PlayStateChange"--当播放状态改变时产生此事件

"PositionChange"--当播放位置改变时产生此事件

 

ActiveMovie控件用于播放视频。常用属性表

属性:(Name)

说明:ActiveMovie控件的名称

属性:自定义

说明:打开属性页

属性:AllowChangeDisplayMode

说明:在运行中允许/不允许改变显示方式。取值为:

True

False

属性:AllowHideControls

说明:在运行中允许/不允许隐匿控制面板。取值为:

True

False

属性:AllowHideDisplay

说明:在运行中允许/不允许隐匿显示面板。取值为:

True

False

属性:Appearance

说明:是否用立体效果绘制。取值为:

0 amv(平面)

1 amv3D(立体)

属性:AutoRewind

说明:媒体播放完后是否自定重放。取值为:

True

False

属性:AutoStart

说明:在打开媒体文件后是否自定播放。取值为:

True

False

属性:Balance

说明:获得或设置多媒体立体声的平衡

属性:BorderStyle

说明:设置边界样式。取值为:

0 amvNone(无边界线)

1 amvFixedSingle(固定单线框)

属性:Causidation

说明:该控件获得焦点时,第二个控件的Validate事件是否发生。取值为:

True 发生

False 不发生

属性:DisplayBackColor

说明:显示面板背景颜色。可从弹出的调色板选择。

属性:DisplayForeColor

说明:显示面板前景颜色。可从弹出的调色板选择。

属性:DisplayMode

说明:获得或设置显示方式(时间或结构)。取值为:

0 amvTime(时间)

1 amvFrames(结构)

属性:DragIcon

说明:该对象在拖动过程中鼠标的图标

属性:DragMode

说明:该对象的拖动模式。取值为:

0 vbManual(手动)

1 vbAutomatic(自动)

属性:EnableContextMenu

说明:单击右键是否显示上下文菜单。取值为:

True

False

属性:Enabled

说明:用于设定是或对事件产生响应。取值为:

True 可用

False 不可用。在执行程序时,该对象用灰色显示,并且不响应任何事件

属性:EnablePositionControls

说明:在控制面板是否显示位置按钮。取值为:

True

False

属性:EnableSelectiontionControls

说明:在控制面板是否显示选择按钮。取值为:

True

False

属性:EnableTracker

说明:在控制面板是否显示跟踪条。取值为:

True

False

属性:FileName

说明:获得或设置当前的多媒体文件

属性:FullScreenMode

说明:是否全屏幕显示。取值为:

True

False

属性:Height

说明:ActiveMoviel控件的高度

属性:HelpContextID

说明:指定一个对象的缺省帮助文件上下文标识符

属性:Index

说明:在对象数组中的编号

属性:Left

说明:距离容器左边框的距离

属性:MovieWindowSize

说明:获得或设置电影窗口尺寸。取值为:

0 amvOriginalSize

1 amvadaoubleaoariginaSize

2 amvOneSixteenthSreen

3 amvOneFourthScreen

4 amvOneHalfScreen

属性:PlayCount

说明:获得或设置电影播放时间的数目

属性:Rate

说明:获得或设置多媒体的比率

属性:SelectionEnd

说明:获得或设置在什么位置停止播放

属性:SelectionStart

说明:获得或设置在什么位置开始播放

属性:ShowControls

说明:显示/隐藏控制面板。取值为:

True

False

属性:ShowDisplay

说明:显示/隐藏显示面板。取值为:

True

False

属性:ShowPositionControls

说明:显示/隐藏在控制面板位置按钮。取值为:

True

False

属性:ShowSelectiontionControls

说明:显示/隐藏在控制面板选择按钮。取值为:

True

False

属性:ShowTracker

说明:显示/隐藏在控制面板跟踪条。取值为:

True

False

属性:TabIndex

说明:获得或设置此对象在父窗体的编号(父窗体中对象响应Tab键的顺序)

属性:TabStop

说明:设置是否可以用"Tab"键选取此对象。取值为:

True 可以

False 不可以

属性:Tag

说明:存储程序所需的附加数据

属性:ToolTipText

说明:设置该对象的提示行

属性:Top

说明:距容器顶部边界的距离

属性:Visible

说明:设置此对象的可见性。取值为:

True 该对象可见

False 该对象不可见

属性:Volume

说明:获得或设置多媒体音量

属性:WhatsThisHelpID

说明:获得或设置与对象相关联的上下文号

属性:Width

说明:设置该对象的宽度

GetCurrentPosition()//播放位置

、ACTIVEMOVIE CONTROL OBJECT的常用属性

1、播放文件的函数:

void CActiveMovie3::Run()

{

InvokeHelper(0x60020001, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);

}

2、暂停播放的函数:

void CActiveMovie3::Pause()

{

InvokeHelper(0x60020002, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);

}

4、停止播放的函数:

void CActiveMovie3::Stop()

{

InvokeHelper(0x60020003, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);

}

5、获得文件的函数:

CString CActiveMovie3::GetFileName()

{

CString result;

InvokeHelper(0xb, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);

return result;

}

6、设置文件的函数:

void CActiveMovie3::SetFileName(LPCTSTR lpszNewValue)

{

static BYTE parms[] = VTS_BSTR;

InvokeHelper(0xb, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,

lpszNewValue);

}

7、获得播放位置的函数:

double CActiveMovie3::GetCurrentPosition()

{

double result;

InvokeHelper(0xd, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);

return result;

}

8、设置播放位置的函数:

void CActiveMovie3::SetCurrentPosition(double newValue)

{

static BYTE parms[] = VTS_R8;

InvokeHelper(0xd, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);

}

9、获得音量的函数:

long CActiveMovie3::GetVolume()

{

long result;

InvokeHelper(0x13, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);

return result;

}

10、设置音量的函数:

void CActiveMovie3::SetVolume(long nNewValue)

{

static BYTE parms[] = VTS_I4;

InvokeHelper(0x13, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue);

}

11、设置自动开始播放的函数:

void CActiveMovie3::SetAutoStart(BOOL bNewValue)

{

static BYTE parms[] = VTS_BOOL;

InvokeHelper(0x28, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, bNewValue);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: