- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多媒体音频播放器
VC++程序设计项目实践 贾振华 第3章 多媒体音频播放器 学习目标: 几种重要的音频格式 媒体控制接口类MCI命令 媒体控制接口类MCI设备 mciSendString和mciSendCommand函数的使用 3.1几种重要的音频格式3.1.1波形音频 波音音频是一种电子数字化的声音,是计算机播放音频的一种重要格式,它存储的是声音的波形信息,当播放波形音频时,不管播放文件的设备是何种类型,都会得到相似的声音,波形音频文件通常wav作为文件扩展名。由于采用波形音频存储电子化声音需要大量的存储空间,因此它一般只用于短时间的声音播放。 波形音频主要有以下几个属性,他们决定了声音的质量。 (1)采样平率 (2)量化位数 (3)声道数 3.1几种重要的音频格式3.1.2 MIDI音频 MIDI(Musical Instrument Digital Interface)在多媒体音频中占有重要的位置,是播放和录制音乐的国际标准。它确定了连接音乐设备的电缆线、硬件和通信协议。多媒体PC只需要具有MIDI接口和MIDI合成器就可具备处理MIDI的功能。 MIDI在处理音乐时是将MIDI音乐设备上产生的活动编码记录下来,将这些数据传递到MIDI合成器上就能重现原来的演奏。MIDI的消息有两种类型:状态字节和数字字节;状态字节u发送的类别(动作和函数);数字字节总是跟在状态字节后,表示发送消息的实际值。数字字节的个数取决与状态字节表示的消息类型。MIDI通过通道字节最高位区别这两种类型。最高位为1,表示状态字节,为0表示数字字节。 所有MIDI消息通过通道来接收和发送。通道上能够传递不同乐器的声音。音序器根据通道传递的消息,让不同的乐器演奏不同声部。使用通道,使MIDI的音乐效果大大增强。但是如果不对声道和相应乐器作统一规定的话将会造成混乱。Windows使用通用的MIDI标准定义通道的分配。 3.1几种重要的音频格式3.1.3 CD音频 CD音频采用红皮书标准,通过CD-ROM驱动器来播放CD音频。CD音频需要的存储量大,一张光盘约能存储70分钟左右的CD音频。 国际标准化组织对光盘的数据格式作了详细的规定。红皮书是CD标准的第一个文本,发表于1981年,描述了CD-DA的信息和编码格式。其采样率为44.1kHz,每个样本量化位数为16位。 一般情况下,整个光盘都用来存储CD音频数据,并划分为多个音轨,轨道的具体长度可以不定,通常一个音轨对应一首曲目。CD音频的长度用分、秒、帧的形式来衡量,最小的单位是帧,每一帧为1/75秒。 3.2媒体控制接口类MCI MCI提供了标准的播放多媒体设备和记录多媒体文件的命令,这些命令使得我们的应用程序可以与设备无关的方式控制音频和视频设备。对所有支持的媒体类型(音频、MIDI、CD音频、数字视频等)而言,这些命令的接口都是类似的。 3.2媒体控制接口类MCI 3.2.1 MCI命令 MCI支持命令字符串和命令消息两种方式控制MCI设别,我们可以在MCI应用程序中使用其中的任何一种或混合使用这两种方式。 命令消息接口包含常数和结构信息。使用全局函数mciSendCommand向某个MCI设备发送消息。 命令字符串接口则提供命令消息的文本版本,它是比命令消息接口要高级的MCI接口。使用命令字符串接口时,必须使用全局函数mciSendString向某个MCI设备发送字符串。Microsoft Windows操作系统在向指定的MCI设备发送该字符串时将其解释成相应的命令消息。 3.2媒体控制接口类MCI 3.2.1 MCI命令 命令消息方式使用结构检索信息,这些结构包含了不同设备的不同信息。而命令字符串方式则将检索到的信息打包到一个字符串中,读者使用MCI命令字符串方式翻译该字符串。 在一般不需要检查MCI命令返回值时,我们推荐读者使用MCI命令字符串方式操作MCI设备——它更易于理解和记忆,在本实例中,我们将使用命令消息方式而不是命令字符串方式。 3.2媒体控制接口类MCI 3.2.1 MCI命令 1. 全局函数mciSendCommand mciSendCommand负责向指定的MCI设备发送一个命令消息,其函数原型为: MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam); 其中的参数IDDevice表示接收该消息的MCI设备类型。MCI_OPEN命令消息不实用此参数,参数uMsg为相应的命令消息,参数fdwCommand为命令消息的标志,参数dwParam则为命令消息包含参数的结构地址。 3.2媒体控制接口类MCI 3.2.1 MCI命令 如果mci
文档评论(0)