- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多媒体编程-read
第10章 多媒体编程
媒体(medium)为信息的载体,多媒体(multimedia)指文本、图形、图像、声音、动画、视频等人类感官所能获得的(计算机可以表示与处理的)各种外部信息。多媒体是相对于早期计算机只能处理数字和文本而言的,图形界面是多媒体的开始,普适计算是其发展方向。
Windows API为程序员提供了多媒体编程的高层接口MCI (Media Control Interface 媒体控制接口),用来播放和录制各种媒体文件。但MCI一直没有封装到MFC中,不过仍然可以利用MFC框架来编写使用MCI的多媒体程序。
关于文本、图形和图像的编程已经在第3章中讲过了,本章只介绍声音、动画、视频等媒体的编程问题。
在将MCI编程之前,先介绍几种非MCI高层音频播放函数。
10.1 播放波形音频文件
波形音频文件格式(Waveform Audio File Format )(*.WAV)是Microsoft为Windows设计的多媒体文件格式RIFF(Resource Interchange File Format,资源交换文件格式)中的一种(另一种常用的为AVI)。其特点是一般不支持压缩,所以文件大,常用于小型的系统音频数据的存储,也用于临时音频文件(似图像格式中的BMP)。
本节先介绍一下音频及其数字化的基本概念,然后讲Windows中只可用来播放音频文件的几种高层函数,包括只能播放系统声音的MessageBeep、Win16中就有的可以播放波形文件的老函数sndPlaySound及Win32引进的功能强大的播放波形文件的新函数PlaySound。而MCI中的声音播放将在下节介绍。
应用程序层
高层音频服务
低层音频服务
Windows音频服务的层次关系
1.音频
声音(sound)是一种由机械振动引起可在物理介质(气体、液体或固体)中传播的纵向压力波(纵波或疏密波),声波可用振幅和频率这两个基本物理量来描述。
音频(audio)指人耳能听见的声音——可听声,频率范围约为20Hz~20kHz。原始的音频信号是连续的,为了计算机能处理,需要把它离散化,方法是采样与量化。根据奈奎斯特(Nyquist)采样定理,只要采样频率不低于声音信号最高频率的两倍,就能把数字化的声音无失真地还原成原来的模拟声音。量化是指将声波的振幅离散化,一般用二进制整数表示。
常用的采样频率有8kHz(语音)、11.025kHz、22.05kHz、44.1kHz(CD音质)和48 kHz等。常用的量化精度为8bit、12 bit、16bit、20bit和24bit等。
声音除了采样频率和量化精度这两个指标外,还有声道数,常见的有:单声道(如语音)、双声道(立体声,如CD)、5.1/6.1/7.1声道(环绕立体声,如DVD)。
2.用MessageBeep播放WAV文件
函数原型为:
BOOL MessageBeep(
UINT uType // sound type
);
该函数调用后马上返回,若成功返回TRUE,否则返回FALSE。其中,参数uType可取值见下表:
MessageBeep播放的声音类型
uType值 声音 0xFFFFFFFF(= -1) 用计算机喇叭发出标准嘟声 MB_ICONASTERISK 系统星号 MB_ICONEXCLAMATION 系统感叹号 MB_ICONHAND 系统手 MB_ICONQUESTION 系统问号 MB_OK 系统缺省
这些系统事件的声音,可用控制面板中声音与音频设备程序来设置和指定,保存在注册表中。老版本的Windows将这些设置信息保存在win.ini文件的Sounds段中。如:
[Sounds]
SystemAsterisk=chord.wav, Asterisk
SystemExclamation=chord.wav, Exclamation
SystemHand=chord.wav, Critical Stop
SystemQuestion=chord.wav, Question
SystemDefault=ding.wav, Default Beep
SystemStart=data.wav, Windows Start
SystemExit=c:\windows/glass.wav, Windows Exit
若系统没有安装音频设备,则会使用计算机本身的喇叭来发声;否则,会调用声卡来播放对应的波形文件。
可以用waveOutGetNumDevs函数来判断系统是否安装了音频设备,其原型为:
UINT waveOutGetNumDevs(VOID); // 返回系统中安装的音频设备数
如
if (waveOutGetNumDevs() == 0) {MessageBox(
您可能关注的文档
最近下载
- 2021年河南中考化学真题及答案.doc VIP
- 4.1水资源及其利用(第1课时保护水资源)课件---2024-2025学年九年级化学人教版(2024)上册.pptx VIP
- 华中科技大学大学物理2014-2015期末考试.pdf VIP
- 果树栽培学完整课件各论苹果.ppt VIP
- 连锁酒店行业2025年扩张策略与风险规避报告.docx
- 国企三项制度改革-10、任期制契约化任期业绩目标责任书(总经理).pdf VIP
- 肝衰竭诊治指南(2024年版)解读.pptx
- 住宅物业管理服务规范DB3505T 17—2024.pdf VIP
- 2024辅警面试问题及答案 .pdf VIP
- 副局长意识形态工作总结.docx VIP
文档评论(0)