第7-8讲音频播放器制作要点分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.2 音频播放器的制作 3.2.1 多媒体编程基础 3.2.2 波形音频播放器 3.2.1 多媒体编程基础 一、 多媒体文件 二、 媒体控制接口MCI 一、多媒体文件 RIFF不是一种新的文件格式,而是基于MS Windows的应用程序提供多媒体文件的框架和包络。 RIFF是一种标记文件格式,用标记来标识信息。 RIFF提供了一种组织文件的标准方法,可通过加上新的标记来将它扩展。 RIFF格式是面向主块(Chunk)的,一个RIFF文件由一个或多个主块组成,其中每一个主块都指向下一主块。每一主块都有一个类型,后面跟随着一些数据。 RIFF文件的每个主块含有一个4字符ASCII串ID称为标记,另4字节说明主块的长度,最后为主块数据,RIFF主块的基本结构如下: typedef unsigned long DWORD; typedef unsigned char BYTE; typedef DWORD FORRCC; typedef struct { FOURCC ckID;// 最多为4字符ID DWORD cksize;//数据字节数 BYTE ckData[ckSize];//含有实际数据的数组 } CK; RIFF主块 RIFF主块类型有 RIFF主块 定义了RIFF文件的内容 表主块 允许嵌入额外的文件信息,如存档位置、版权信息、生成日期等 子主块 当基本主块不够时,允许将更多的信息加到基本主块上 RIFF主块的组织 RIFF的扩展文件名 WINDOWS的多媒体体系结构 多媒体服务 Windows系统以及MMSYSTEM扩展部分提供了大量的多媒体服务函数,根据服务对象大致分为: 高层音频服务(使用高层音频播放函数或MCI) 使用简单,易于编程,但功能有限 低层音频服务(函数用wave,midi,aux加In或Out前缀组成) 可灵活有效控制音频,功能强,但对编程知识和技巧要求高 动画播放服务(可使用MCI动画命令或多媒体影片演播函数) 多媒体文件I/O服务(包括基本I/O、缓冲文件I/O和RIFF文件I/O,命令类似于mmioOpen,mmioCreateChunk) 其他服务函数(操纵杆、计时器、屏幕保护等服务) 从RIFF文件中获取信息 多媒体I/O函数 如何读RIFF文件 在读入RIFF文件时,首先必须打开RIFF文件,然后找到自己感兴趣的主块的位置并把文件指针放在数据的顶部 HMMIO h; CString path; … if ( (h=mmioOpen(path, NULL, MMIO_READ))==NULL) return FALSE; 打开一个RIFF文件后,就可以从文件中读出信息了: if ( mmioRead(h, dataformat, (long)n)!=(long)n) { mmioClose(h,0); return FALSE; } 二、 媒体控制接口(MCI) 媒体控制接口 (MCI, Multimedia Control Interface)成为控制接口和外设的基本方法,提供了一种与设备无关的控制多媒体外设的手段。 MCI设备类型 MCI能够控制两类设备:简单设备和复合设备。 简单设备:不需要数据文件的设备,例如CD音频播放设备。对于这类设备,其播放的媒体内部已经包含了所需的数据。 复合设备:需要数据文件的设备,如波形音频设备。 MCI所支持的设备类型 MCI函数接口 MCI高级函数接口 mciGetCreatorTask [原型] HANDLE mciGetCreatorTask ( MCIDEVICEID IDDevice) [功能] 获得指定MCI设备的任务指针。 [参数] IDDevice —任务所返回的设备ID。 [返值] 如果函数成功执行则返回所打开设备的指针,否则返回NULL。 mciGetDeviceID [原型] MCIDEVICEID mciGetDeviceID ( LPCTRSTR lpszDevice) [功能] 获得MCI设备的标识符。 [参数] lpszDevice—指定设备的名称或别名的字符串。 [返值] 如果函数执行成功则返回指定设备的标识符,否则返回0。执行该函数所获得的设备标识符通常用于mciSendCommand函数。 mciGetErrorString [原型] BOOL mciGetErrorString (DWORD fdwError, LPTSTR lpszErrorText , UINT cchErrorText ) [功能] 获得MCI错误信息。 [参数] fdwError—mciSen

文档评论(0)

挺进公司 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档