`
txf2004
  • 浏览: 6868408 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mciWnd播放视频音频的操作。

 
阅读更多

MCIWndCreate函数在什么时候用呢?比如说我们远程视频开发中 接收到对方传来的压缩(compressor)后的 视频数据 我们解压缩(decompressor)之后可以使用

这个函数来创建一个窗体 进行播放视频 如 avi(音频视频交错的格式), 他可以播放 wav avi mid等多种格式 但是一定要是解码之后的文件 。

一个简单的代码示例:

HWND hw=MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),MCIWNDF_SHOWALL|MCIWNDF_NOMENU|MCIWNDF_NOPLAYBAR,L"c:\\CAPTURE.avi");//创建一个与
::MoveWindow(hw,0,0,300,300,TRUE) ; //移动MCI窗口调整窗口的合适位置 //多媒体关联的MCI窗口
MCIWndPlay(hw) ; //播放多媒体文件

MCIWnd的使用:

1、MCIWnd的创建

  MCIWnd子窗口的创建可使用MCIWndCreate函数:
    HWND MCIWndCreate(
      HWND hwndParent,   //父窗口句柄
      HINSTANCE hInstance, //应用程序的实例句柄
      DWORD dwStyle,    //显示风格
      LPSTR szFile     //多媒体文件名
    );
  返回的HWND可以保存下来,以供以后使用,也可不保存。
  该函数会在其父窗口上创建一个子窗口,类似于创建一个控间如按扭或列表框等。
  该子窗口会占据父窗口一定空间,可带有播放按钮、进度条、菜单按钮等。

图3.3.1 MCIWnd子窗口

示例:
 (1)建一个多文档的MFC应用程序。
 (2)在View类的头文件中加入变量:
    HWND m_mciWnd;
 (3)在View类中用ClassWizard重载OnInitialUpdate函数。
 (4)在此函数中加入代码:
     m_mciWnd=MCIWndCreate(m_hWnd, AfxGetInstanceHandle(), MCIWNDF_SHOWALL | MCIWNDF_RECORD, GetDocument()->GetPathName());
   这里,m_hWnd为此View窗口的HWND,
      AfxGetInstanceHandle()可取得本应用程序的实例句柄,
      MCIWNDF_flag们决定了子窗口中是否要加入播放按钮、录音按钮、菜单按钮、进度条等控件,
      GetDocument()->GetPathName()则可获得通过打开文件对话框取得的文件名。
 (5)编译运行。
 (6)在运行的程序中已经可以任意打开一个多媒体文件进行播放。例如 .wav、.avi、.mid文件。

2、MCIWnd的使用

  如果在MCIWnd子窗口中有播放按钮、录音按钮、菜单按钮、进度条等控件,可以通过它们操作多媒体。
  如果象上例一样保存了MCIWndCreate函数返回的HWND,则不管子窗口中是否有控件,都可通过MCIWndxxxx函数操作多媒体。

 (7)在上面的程序中加入ID为 ID_NEW、ID_OPEN、ID_PLAY、ID_PLAYREVERSE、ID_RECORD、ID_SAVE、ID_STOP、ID_CLOSE 的菜单项或Toolbar按钮。
 (8)在 ID_NEW 的消息响应函数中加入:
     MCIWndNew(m_mciWnd,"waveaudio");
   MCIWnd子窗口可以建立一个新的音频多媒体文件。
 (9)在 ID_OPEN 的消息响应函数中加入:
     MCIWndOpen(m_mciWnd,"c:\\MyWav.wav",0);
   MCIWnd子窗口可以打开一个已存在的多媒体文件。
 (10)在 ID_PLAY 的消息响应函数中加入:
     MCIWndPlay(m_mciWnd);
   MCIWnd子窗口可以播放多媒体文件。
 (11)在 ID_PLAYREVERSE 的消息响应函数中加入:
     MCIWndPlayReverse(m_mciWnd);
   MCIWnd子窗口可以倒着播放视频多媒体文件。
 (12)在 ID_RECORD 的消息响应函数中加入:
     MCIWndRecord(m_mciWnd);
   MCIWnd子窗口可以录制音频多媒体文件。
 (13)在 ID_SAVE 的消息响应函数中加入:
     MCIWndSave(m_mciWnd,"c:\\MyWav.wav");
   MCIWnd子窗口可以保存已录制的音频多媒体文件。
 (14)在 ID_STOP 的消息响应函数中加入:
     MCIWndStop(m_mciWnd);
   MCIWnd子窗口可以停止正在播放或录制的多媒体文件。
 (15)在 ID_CLOSE 的消息响应函数中加入:
     MCIWndClose(m_mciWnd);
   MCIWnd子窗口可以关闭当前的多媒体文件,若要再使用,必须重新打开。


分享到:
评论

相关推荐

    用MCIWnd播放avi文件aviplay

    在vc6中利用MCIWnd播放avi文件的简单例子, 左键单击avi播放窗口可暂停、恢复播放,右键点击avi播放窗口则结束播放。

    基于MCIWnd的avi视频播放器

    编写一个AVI视频播放器程序,能够播放AVI视频文件。“文件”->“打开”菜单项,选择一个AVI文件,则程序在客户区的左上角创建一个MCIWnd窗口,并且窗口中已该AVI文件的首幅画面。按下MCIWnd窗口控制条中的“播放”...

    MCIWND.rar_mciwnd_音频 速度

    得用滑动条来控制音频的播放,可调整速度播放大小

    MCIWnd应用范例

    利用MCIWnd可实现录音,保存,播放,打开等功能

    MCIWnd播放器,功能算完善的,有功能介绍,欢迎学习

    5.使用DirectSound核心,采用混音(MCIWnd也可播放多个,虚拟几个播放混音) 6.定时关机,定时开机(修改BIOS),闹铃,桌面锁定 7.解析歌词文件,同步显示歌词 8.添加一个单文档浏览器,可下载歌曲 以上是本人随便想到的,很多...

    MCIWnd.rar_avi 播放_avi播放_mciw_mciwnd_mciwnd mcisendcomma

    一个包装mci函数的类,可以简单的调用函数实现多种avi播放功能,而不必写很多mci命令。

    JAVA基于局域网的聊天室系统(源代码+论文).zip

    (1) AVICAP.DLL:包含了执行视频捕获的函数,它给AVI文件、I/O和视频音频设备驱动程序提供一个高级接口; (2) MSVIDEO.DLL:用一套特殊的DrawDib函数来处理屏幕上的视频操作; (3) MCIAVI.DRV:此驱动程序包括...

    含有播放列表的音乐播放器的制作(VC++)

    本程序使用MCIWnd类的相关函数实现基本功能,在对列表框编程,实现双击列表进行单曲的播放,并具有上一曲和下一曲的功能。

    VC播放MP3音乐的各种方式实现

    该文档是属于高级技术总结文档,里面有代码的详细讲解和注释,是很好的学习和研究的... 文档内讲解了VFW的mciSendCommand,MCIWnd窗口,也更新加上了最新的directshow的使用讲解!该文档会让你学习到实质性的应用知识!

    tuxiangchuli.rar.rar_DirectX 线_activex_mci _opengl_socket

    使用媒体控制接口(MCI) 使用MCIWnd窗口类 使用OpenGL DirectX编程 DLL的概念 动态链接库的创建 动态链接库的访问 创建ActiveX控件 测试和使用ActiveX控件 进程和线程 线程的管理和操作 线 程 通 信 线程同步 概 述...

    使用C++实现录音的源码

    通过使用VC++,借助MCIWnd类实现录音功能,源码简单明了,易读性强,适合作为学习录音功能的参考....

    MFC音乐播放器源代码

    VC6.0编写的音乐播放器,包含音乐播放以及歌词滚动功能。

Global site tag (gtag.js) - Google Analytics