zoukankan      html  css  js  c++  java
  • 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);
    }

  • 相关阅读:
    JavaScript对原始数据类型的拆装箱操作
    Javascript继承(原始写法,非es6 class)
    动态作用域与词法作用域
    自行车的保养
    探索JS引擎工作原理 (转)
    C语言提高 (7) 第七天 回调函数 预处理函数DEBUG 动态链接库
    C语言提高 (6) 第六天 文件(续) 链表的操作
    C语言提高 (5) 第五天 结构体,结构体对齐 文件
    C语言提高 (4) 第四天 数组与数组作为参数时的数组指针
    C语言提高 (3) 第三天 二级指针的三种模型 栈上指针数组、栈上二维数组、堆上开辟空间
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4455010.html
Copyright © 2011-2022 走看看