mciWnd播放视频音频的操作。

简介: MCIWndCreate函数在什么时候用呢?比如说我们远程视频开发中 接收到对方传来的压缩(compressor)后的  视频数据 我们解压缩(decompressor)之后可以使用 这个函数来创建一个窗体 进行播放视频 如 avi(音频视频交错的格式),  他可以播放  wav   avi  mid等多种格式 但是一定要是解码之后的文件 。

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子窗口可以关闭当前的多媒体文件,若要再使用,必须重新打开。


相关文章
|
5月前
|
存储 前端开发 API
在网页中进行音频录制
【10月更文挑战第9天】
465 58
|
10月前
|
编解码
音视频录制播放原理
音视频录制播放原理
175 1
|
存储 Cloud Native Linux
音视频 ffplay播放控制
音视频 ffplay播放控制
|
编解码 Shell API
MediaPlayer音频与视频的播放介绍
Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频。 它支持三种不同的媒体来源: 本地资源 内部的URI,比如你可以通过ContentResolver来获取 外部URL(流)对于Android所支持的的媒体格式列表 1.相关方法详解 1)获得MediaPlayer实例: 可以直接new或者调用create方法创建: MediaPlayer mp = new MediaPlayer(); MediaPlayer mp = MediaPlaye
195 0
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )(一)
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )(一)
1547 0
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )(一)
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )
624 0
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )(二)
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )(二)
1000 0
【FFmpeg】ffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )(二)
|
Web App开发 Java API
浅析webrtc中音频的录制和播放流程
本文是基于PineAppRtc项目github.com/thfhongfeng… 在webrtc中音频的录制和播放都是封装在内部,一般情况下我们也不需要关注,直接使用即可。 但是最近有一个需求,需要将我们自己的数据进行传输,所以就需要将这些接口暴露出来使用。所以就需要去研究一下它的源码,就有了这篇文章。
1008 0
|
内存技术
【音视频连载-008】基础学习篇-SDL 播放 PCM 音频文件(下)
接上篇 SDL 播放 PCM 音频文件,已经实现了 推 的模式去播放,接下来看看 拉 的模式如何实现。
242 0
【音视频连载-008】基础学习篇-SDL 播放 PCM 音频文件(下)
|
消息中间件 vr&ar 数据格式
【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)
在前面的文章中已经能够利用 SDL 去播放 YUV 视频文件了,接下来要通过 SDL 去播放 PCM 音频文件。
609 0
【音视频连载-007】基础学习篇-SDL 播放 PCM 音频文件(上)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等