• ActiveMovie属性说明,使用资料。


    控件本身虽然是微软作的但还是觉得有些不足,有些接口提供的不够友好,用起来要自己建立函数,有些在较低版本的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);
    }

  • 相关阅读:
    【BZOJ 1455】罗马游戏
    【UR #2】树上GCD
    1067: [SCOI2007]降雨量
    1068: [SCOI2007]压缩
    1066: [SCOI2007]蜥蜴
    1065: [NOI2008]奥运物流
    1064: [Noi2008]假面舞会
    1063: [Noi2008]道路设计
    2329: [HNOI2011]括号修复
    2734: [HNOI2012]集合选数
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4455010.html
Copyright © 2020-2023  润新知