以下是我学vc++看的几篇文章:不是本人所写:如果作者有需要的话:请联系我[46]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 ftbk 的 blog

在一个mci的处理过程中,必须使用以下流程:

  • 打开一个mci设备。
  • 然后open播放mci设备,其间可以暂停和停止播放,
  • 最后关闭mci设备。

在以上任何步骤中,都可以用状态检测函数检测工作状态。

下面我们看一下mci的实现过程:

  1. open mci

首先,我们 初始化一个mci_open_parms的结构,其中要用到两个值。

其中mciopen.lpstrdevicetype指定了要打开的设备类型,这些设备类型可从前面的 “mci设备类型”选取。可以是标识或描述字符串,例如语句mciopen.lpstrdevicetype=mci_devtypevcr与语句 mciopen.lpstrdevicetype="vcr"是等价的。若不指定类型则计算机将根据文件名自动识别设备,接下来 mciopen.lpstrelimmentname指定了要打开的文件名,最后调用mcisendcomand指定计算机将在结构的wdeviceid 中填入打开的设备代码;以后应用程序将根据此设备代码访问mci设备。

      

这里谈一下三种打开方式的区别:

[1]:自动识别:打开一个"wav"文件

mci_open_parms mciopen;

mciopen.lpstrdevicetype=0;

mciopen.lpstrelementname="aaa.wav";

mcisendcommand(null,mci_open,  mci_open_element,

(dword)&mciopen);

   

[2]:指定设备描述:打开cd播放器

mci_open_parms   mciopen;

mciopen.lpstrdevicetype=lpstr)mci_devtype_cd_audio ;

mcisendcommand(null,mci_open,mci_open_type | mci_open_type_id,

        (dword)&mciopen);

 

[3]:指定描述字符串:    打开一个avi文件

       mci_open_parms   mciopen;

mciopen.lpstrdevicetype="avivideo";

mciopen.lpstrelementname="aaa.avi";

mcisendcommand(null,mci_open,mci_open_type

| mci_open_element,

(dword)&mciopen);

请注意mcisendcommand函数第三个参数的区别:

mci_open_type:表示要使用mci_open_parms结构中的lpstrdivicetype参数,这可区分指定设备打开方式和自动识别方式之间的区别。在自动方式中,不需使用lpstrdevicetype参数。因此,也不需指定mci_open_type。

mci_open_element:表示lpstrdevicetype参数中的是设备表述字符串。

mci_open_type_id:表示lpstrdevicetype参数中的是设备描述。

      

2 playmci:

play函数中,需要一个返回窗口句柄,以便应用程序在播放结束后向此窗口发送一个消息,告诉窗口已经播放结束。我们首先初始化一个mci_play_parms的数据结构:将其中dwcallback参数赋与窗口句柄。然后调用 mcisendcommend,当然发送的指令是mci_play,告诉系统开始播放,另外第三个参数指定mci_notify,告诉系统播放完后要通知自己。

querymci:

要想检测mci播放状态,就要发送指mci_status,并标志mci_status_ item,返回值在结构mci_status_parms的dwreturn上。

    关于mci的进一步详细情况,本章节将不再讲述,有关mci中用到的命令详解、    数据结构,请大家自己查阅本书配套图书。

1.2波形混音器

本文关键:以下是我学vc++看的几篇文章:不是本人所写:如果作者有需要的话:请联系我
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top