MCI媒体技术

媒体控制接口(Media Control Interface,缩写MCI)是由微软和IBM开发的一个高级应用程序接口(API),功能是控制连接到一台Windows或其他计算机的多媒体外部设备(例如播放机、音频控制器)MCI使编写某些类别的多媒体程序(例如播放各类媒体文件、录制声音)变得非常简单,只需将命令作为字符串传递。

使用MCI媒体技术播放声音我们有两种方式:

  • 使用命令方式,这种方式比较复杂
  • 使用字符串的方式

使用到的函数

MciSendString()

// 出错返回非零值(错误代码)可用mciGetErrorString获得错误的文本描述
MCIERROR mciSendString( 
    LPCTSTR lpszCommand, // 指向以null结尾的命令字符串:”命令 设备[ 参数]”
    LPTSTR lpszReturnString,// 指向接收返回信息的缓冲区,为NULL时不返回信息
    UINT cchReturn, // 上述缓冲区的大小
    HANDLE hwndCallback // 在命令串中含notify时,它指定一个回调窗口的句柄, 一般为NULL

);

注意:在使用此函数之前,需要加载和映入mmsystem.h的库文件

#include <MMSystem.h>
#pragma comment(lib,"Winmm.lib")

mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等,下面我们来介绍一下它的使用方法:

在介绍使用方法之前,先说明xxx表示的是声音文件的所在位置

1、打开多媒体文件。

mciSendString(_T("play xxx"), NULL, 0, NULL);

2、播放多媒体文件。

mciSendString("play xxx",buf,sizeof(buf),NULL);

3、如果想全屏播放:

mciSendString("play xxxfullscreen",buf,sizeof(buf),NULL);

4、暂停播放。

mciSendString("pause xxx",buf,sizeof(buf),NULL);

5,停止播放。

mciSendString("stop xxx",buf,sizeof(buf),NULL);

6,关闭媒体设备文件。

mciSendString("closs xxx",buf,sizeof(buf),NULL);

7,得到所播放文件的长度。

char sPosition[256];

long lLength;

mciSendString("Status xxx length", sPosition, 255,0);

lLength=strtol(sPosition, NULL, 10);

其中lLength就是所播放文件的长度。注意:该长度单位是毫秒。

8,得到所播放文件的声音大小。

char chVolume[256];

long lVolume;

mciSendString("status xxx volume",chVolume,255,0);lVolume=strtol(chVolume,NULL,10);

其中lVolume就是所播放文件的声音大小。

9,到你指定的位置播放。

CString step1;long lPosition;

lPosition=100;

step1.Format("seek xxx to %ld",lPosition);

mciSendString(step1.GetBuffer(step1.GetLength()),buf,sizeof(buf),0);

其中lPosition就是要到的播放位置,可以由你指定。

9,其他一些关于MCI的操作。

record 录音

save 保存

capacity 查询MCI媒体设备的带载能力

info 设备的信息

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值