多媒体实验报告

PAGE

PAGE 1

多媒体实验报告

姓名:李浩 日期:2013.6.21

作业一:Mini-Cooledit音频播放器

实验题目

Mini-Cooledit音频播放器

二、实验任务

编程实现一个具有GUI界面的音频播放控制小软件。

三、实验要求

从文件读取Wav音频文件

音频文件的播放、暂停、停止功能

从麦克风录音,并能存储成Wav文件

对录音进行播放、暂停、停止等功能

实现音频采样率与量化位数的转换(如44.1KHz, 16位转换成16KHz,8位)

音频波形的显示、时间轴显示的放大、缩小(选作)

音频语谱图的绘制与显示(选作)

四、设计原理及步骤

MCI ( Media Control Interface ) ,即媒体控制接口,向基于Windows操作系统的 应用程序提供了高层次的控制媒体设备接口的能力。 应用程序通过MCI发送相应的命令来控制媒体设备。

一条基于MCI的命令包含以下3个部分。

数据结构:该结构包含可传递给MCI驱动程序的信息和从驱动程序返回的值,指定要执行的MCI命令一个常量,如MCI_OPEN、MCI_CLOSE...

一个或一组用来指定MCI信息子选项的标志:这些标志用来确定可以得到什么类型的信息和如何执行函数。

一个确定命令附加参数:Windows MDK为使用命令消息接口发送MCI消息提供了3个核心函数。

1、mciSendCommand函数。该函数用于向MCI设备发送一个命令消息,原型为:MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam); 参数说明如下: IDDevice:用来表示一个MCI设备。MCI使用MCI_OPEN消息打开一个设备时自动创建一个标识号用以唯一标识要操作的设备,以后的命令操作均使用此标识。 uMsg:表示要发出的消息,取值如下所示。 MCI_OPEN 打开一个设备 MCI_CLOSE 关闭一个设备 MCI_PLAY 播放全部或部分音频,从暂停状态恢复播放 MCI_STOP 停止播放 MCI_PAUSE 暂停播放 MCI_SEEK 改变当前位置 MCI_CUE 提示一个设备以最小的延迟开始播放或录制 MCI_RECORD 在一个设备上开始录制 MCI_SAVE 保存一个文件 MCI_INFO 查询设备信息,如产品名称等 MCI_GETDEVCAPS 查询产品特征,如设备类型等 MCI_STATUS 查询设备当前状态,如播放位置、媒体格式等 MCI_SET 设置设备参数,如时间格式、波形数据格式等fdwCommand:消息指定标志。dwParam:指定一个指向消息数据结构的指针。 如果mciSendCommand函数调用成功则返回0,否则返回错误代码消息。所返回的DWORD低位字是错误代码,可以将它发送到mciGetErrorString函数,已获得对错误的文本描述。若错误事设备特有的,高位包含了设备ID,否则高位为0。 MMSYSTEM.H头文件中还定义了MCI命令所需要的数据结构类型。以下是MCI命令常用的数据结构。 MCI_OPEN_PARMS MCI_OPEN命令消息参数的数据结构 MCI_PLAY_PARMS MCI_PLAY命令消息参数的数据结构 MCI_RECORD_PARMS MCI_RECORD命令消息参数的数据结构

2、mciGetDevicelID函数。当打开一个设备时,该函数用来获得此设备的ID,原型为:MCIDEVICEID mciGetDevicelID(LPCTSTR lpszDevice);参数lpszDevice指定要打开的MCI设备名。若函数调用成功,则返回设备的标志号,否则返回0。

3、mciGetErrorString函数。该函数用于返回一个错误代码的文本描述,原型为:BOOL mciGetErrorString(DWORD fdwError, LPTSTR lpszErrorText, UINT cchErrorText); 参数说明如下: fdwErr