多媒体音频播放器

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
大多数MCI命令需要的设备标识符都由调用 MCI_OPEN命令而得到。但在部分情况下,可能 不希望打开该设备而获取设备标识符,此时可以 使用全局函数mciGetDeviceID。
不同的媒体可能使用不同的时间格式,这些时间 格式包括HMS(时/分/秒)格式,MSF(分/秒/ 帧)格式和TMSF(轨/分/秒/帧)格式等。MCI 提供了多个宏以进行媒体的时间格式变换,这些 宏有:
个数取决与状态字节表示的消息类型。MIDI通过通道字
节最高位区别这两种类型。最高位为1,表示状态字节,
为0表示数字字节。
所有MIDI消息通过通道来接收和发送。通道上能够传递
不同乐器的声音。音序器根据通道传递的消息,让不同的
乐器演奏不同声部。使用通道,使MIDI的音乐效果大大
增强。但是如果不对声道和相应乐器作统一规定的话将会
mciSendString的返回值与 mciSendCommand相同。
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
MCI命令字符串的语法为典型的“动词——对象— —修饰符”结构。每个命令字符串都包括一个命令、 一个设备标识符和命令参数。其中的参数对部分 命令可选的,而对于部分命令是必须的。一般地, 一个命令字符串的形式为: command device_id arguments
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式
3.2.1 MCI命令
MCI_HMS_HOUR: 检索HMS值的小时字段; MCI_HMS_MINUTE: 检索HMS值的分钟字段; MCI_HMS_SECOND: 检索HMS值的秒字段; MCI_MAKE_HMS: 创建HMF值; MCI_MAKE_MSF 创建MFS值; MCI_MAKE_TMSF: 创建TMSF值; MCI_MSF_FRAME: 检索MSF值的帧字段; MCI_MSF_MINUTE: 检索MSF值的分钟字段; MCI_MSF_SECOND: 检索MSF值的秒字段; MCI_TMSF_FRAME: 检索TMSF值的帧字段; MCI_TMSF_MINUTE 检索TMSF值的分钟字段; MCI_TMSF_SECOND:检索TMSF值的秒字段; MCI_TMSF_TRACK: 检索TMSF值的轨(音轨)字段。
VC++程序设计项目实践 贾振华
北华航天工业学院计算机系 制作
单第击3章此处多编媒辑体母音版频标播题放样器式
学习目标: 几种重要的音频格式 媒体控制接口类MCI命令 媒体控制接口类MCI设备 mciSendString和mciSendCommand函数的
使用
北华航天工业学院计算机系 制作
单3击.1此几处种编重辑要母的版音标频题格样式式 3.1.1波形音频
UINT cchReturn, HANDLE hwndCallback);
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
其中的参数lpszCommand表示MCI命令字符串 (以“\0”结束)的地址,参数 lpszReturnString则为返回字符串的缓冲区地址 ,参数cchReturn为参数lpszReturnString指定 的字符缓冲区大小,如果命令字符串指定了通知 (“notify”)标志,则参数hwndCallback则为 回调窗口的句柄。
为1/75秒。
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I式
MCI提供了标准的播放多媒体设备和记录多媒体 文件的命令,这些命令使得我们的应用程序可以 与设备无关的方式控制音频和视频设备。对所有 支持的媒体类型(音频、MIDI、CD音频、数字 视频等)而言,这些命令的接口都是类似的。
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
2. 全局函数mciSendString 全局函数mciSendString负责向MCI设备发送一
个命令字符串。接收命令的设备由字符串的内容 指定。 MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString,
定。红皮书是CD标准的第一个文本,发表于 1981年,描述了CD-DA的信息和编码格式。其 采样率为44.1kHz,每个样本量化位数为16位。
一般情况下,整个光盘都用来存储CD音频数据,
并划分为多个音轨,轨道的具体长度可以不定,
通常一个音轨对应一首曲目。CD音频的长度用分、
秒、帧的形式来衡量,最小的单位是帧,每一帧
造成混乱。Windows使用通用的MIDI标准定义通道的分
配。
北华航天工业学院计算机系 制作
单3击.1此几处种编重辑要母的版音标频题格样式式 3.1.3 CD音频
CD音频采用红皮书标准,通过CD-ROM驱动器 来播放CD音频。CD音频需要的存储量大,一张 光盘约能存储70分钟左右的CD音频。
国际标准化组织对光盘的数据格式作了详细的规
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
4. MCI函数、宏和消息
大多数MCI应用程序需要重复使用全局函数 mciSendString和mciSendCommand。除了 这两个函数之外,MCI还提供了其他几个不太常 用的全局函数。
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
3. MCI命令的分类 MCI定义了四种类型的命令:
(1)系统命令: (2)必需命令 (3ቤተ መጻሕፍቲ ባይዱ基本命令 (4)扩展命令
系统命令和必需命令为所有MCI设备都必须支持 的最小命令集,而基本命令和扩展命令并不为所 有的MCI设备支持。如果应用程序需要使用基本 命令和扩展命令,则应该在使用该命令之前查询 该设备是否支持它(使用查询命令 MCI_GETDEVCAPS)。MCI命令见教材表3-2 所示。
全局函数mciGetErrorString的意义前文已经述 及。此外,全局函数mciGetCreatorTask允许应 用程序使用设备标识符检索创建该标识符的任务 句柄。全局函数mciGetYieldProc与 mciSetYieldProc可以指定或检索与“wait”
北华航天工业学院计算机系 制作
命令字符串接口则提供命令消息的文本版本,它 是比命令消息接口要高级的MCI接口。使用命令 字符串接口时,必须使用全局函数 mciSendString向某个MCI设备发送字符串。 Microsoft Windows操作系统在向指定的MCI设 备发送该字符串时将其解释成相应的北华命航天令工业消学院计息算机。系 制作
其中,command指定了MCI命令,例如open、 colse或play等;device_id标识了MCI驱动器的 一个实例(device_id在打开设备时创建); arguments指定了命令所使用的标志和变量。这 里的标志为MCI命令可识别的关键字,变量为 MCI命令或标志使用的数字或字符串。例如,希 望从指定的位置播放到指定的位置,北华可航天以工业使学院计用算机下系 制作
波音音频是一种电子数字化的声音,是计算机播 放音频的一种重要格式,它存储的是声音的波形 信息,当播放波形音频时,不管播放文件的设备 是何种类型,都会得到相似的声音,波形音频文 件通常wav作为文件扩展名。由于采用波形音频 存储电子化声音需要大量的存储空间,因此它一 般只用于短时间的声音播放。
波形音频主要有以下几个属性,他们决定了声音 的质量。
多媒体PC只需要具有MIDI接口和MIDI合成器就可具备
处理MIDI的功能。
MIDI在处理音乐时是将MIDI音乐设备上产生的活动编码
记录下来,将这些数据传递到MIDI合成器上就能重现原
来的演奏。MIDI的消息有两种类型:状态字节和数字字
节;状态字节u发送的类别(动作和函数);数字字节总
是跟在状态字节后,表示发送消息的实际值。数字字节的
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
1. 全局函数mciSendCommand mciSendCommand负责向指定的MCI设备发送
一个命令消息,其函数原型为:
MCIERROR mciSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam);
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
如果要检索mciSendCommand返回值的文本描 述,可以使用全局函数mciGetErrorString. MCI命令消息的语法包含三个元素:常数消息值、 包含命令参数的结构和确定命令选项和参数有效 字段的标志集合。例如,下面的代码向指定的 MCI设备发送一个MCI_PLAY命令:
其中的参数IDDevice表示接收该消息的MCI设备 类型。MCI_OPEN命令消息不实用此参数,参数 uMsg为相应的命令消息,参数fdwCommand为 命令消息的标志,参数dwParam则北为华航命天工业令学院消计算息机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
如果mciSendCommand成功发送命令消息,函 数返回0,否则返回相应的MCI错误码。需要注 意的是,错误码包含在返回的DWORD(双字) 类型值的低地址字中。如果该错误与特定的设备 有关,则高地址字为发生错误的驱动器标识,否 则高地址字为0。有关MCI错误的信息,请参阅 MCI错误类型一节。
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
命令消息方式使用结构检索信息,这些结构包含 了不同设备的不同信息。而命令字符串方式则将 检索到的信息打包到一个字符串中,读者使用 MCI命令字符串方式翻译该字符串。
在一般不需要检查MCI命令返回值时,我们推荐 读者使用MCI命令字符串方式操作MCI设备—— 它更易于理解和记忆,在本实例中,我们将使用 命令消息方式而不是命令字符串方式。
(1)采样平率 (2)量化位数 (3)声道数
北华航天工业学院计算机系 制作
单3击.1此几处种编重辑要母的版音标频题格样式式
MIDI(Musica3l I.n1s.tr2umMeIntDDIi音git频al Interface)在多
媒体音频中占有重要的位置,是播放和录制音乐的国际标
准。它确定了连接音乐设备的电缆线、硬件和通信协议。
mciSendCommand(wDeviceID, //设备标识
MCI_PLAY,
//命令消息
0,
//标志
(DWORD)(LPVOID)&mciPlayParms); //参数块
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
最后一个参数mciPlayParms为 MCI_PLAY_PARMS类型的结构地址,其中可能 包含了回放的开始和结束位置。大多数MCI命令 消息都使用类似的结构包含足够的MCI操作信息。 所有这些结构的第一个参数都是MCI操作完成后 接收MM_MCINOTIFY通知消息的窗口句柄。
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
DWORD PlayFromTo(LPSTR lpstrAlias, DWORD dwFrom, DWORD dwTo)
{//形成命令串 Char achCommandBuff[128];
//发送命令串 Waprintf(achCommandBuff, “paly %s from %u to %u”, lpstrAlias, dwFrom, dwTo); Return mciSendString(achCommandBuff, NULL, 0, NULL);
北华航天工业学院计算机系 制作
单3击.2此媒处体编控辑制母接版口标类题MC样I 式 3.2.1 MCI命令
MCI支持命令字符串和命令消息两种方式控制 MCI设别,我们可以在MCI应用程序中使用其中 的任何一种或混合使用这两种方式。
命令消息接口包含常数和结构信息。使用全局函 数mciSendCommand向某个MCI设备发送消息 。
相关文档
最新文档