当前课程知识点:VC++面向对象与可视化程序设计(下):MFC编程基础 > 第10章 多媒体应用程序的设计 > 10-1 利用音频函数实现多媒体程序设计 > 10-1-2
返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频课程列表
返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频列表
我们下面介绍几个常用的音频函数
第一个是MessageBeep()函数
它是用来播放系统提示音
第二个是sndPlaySound()
用来播放wav音频
这是我们在10_1这个例子里面大家已经了解到的
第三个是PlaySound()函数
它是用来播放来自资源中的声音
那实际上
这三个函数
它的功能的包含关系是这样的
PlaySound功能最广
MessageBeep功能最弱
所以PlaySound包含了sndPlaySound跟MessageBeep的播放功能
sndPlaySound是包含了MessageBeep的播放功能
所以它们功能的包含关系
大家通过这个图大家就可以了解到
首先我们介绍MessageBeep这个函数
这个函数是VC++中最简单的音频函数
它的功能也就最少
这个函数的原型是这样的
这个MessageBeep它只有一个参数
如果这个参数是ICONINFORMATION
那是出现信息消息框时对应的声音
比如说ICONWARNING,是出现警告消息框时对应的声音
比如说ICONHAND、ICONSTOP、ICONERROR
这是出现错误消息框时出现的声音
那么这里面出现信息消息框是对应的声音
有ICONINFORMATION或者ICONASTERISK
那么遇到这两个参数的时候发出的是同一个声音
那么这里面ICONHAND、ICONSTOP、ICONERROR这三个参数的时候
都是一个错误提示框时对应的声音
比如说这个是ICONQUESTION
是出现询问消息框时对应的声音
MB_OK是系统默认的声音
所以这几个参数大家试一下
看看它都发出什么声音
然后把这些参数分别放到MessageBeep函数参数里头就可以了
我们再介绍sndPlaySound函数
这个函数可通过指定文件名
或者指定在注册表中注册了的条目来播放wav音频
这个函数的原型是这样的
第一个参数通过10_1的例子大家已经知道了
它是要播放的文件的文件名
包含它的路径
第二个参数有这些选项
比如说SND_ASYNC
那么这是采用异步播放的方式播放声音
在声音播放后函数立即返回
如果要终止时通过再次调用这个函数
在第一个参数处写入文件名
第二个参数为空
如果把第一个参数写为SystemStart
那么就是开机时的那个声音
第二个参数如果写为“NULL”
那么大家可以看一下
这个它的运行效果是什么
我们也可以回过头来我们试一下刚才的例子
我把这个地方写为NULL
那么大家看一下
好了!它播放完了自己就停止了
如果要终止时再次调用这个函数
那么我们第二个参数,给它写空(NULL)
我们看这个参数SND_LOOP
这是循环播放声音
必须与第一个参数同时使用
停止的方法跟上面的方法是一样的
第三个参数是MEMORY
它说明第一个参数指定的wav声音在内存的映像中
第四个参数就是NODEFAULT
NODEFAULT就是没有缺省
没有缺省是什么意思呢?
当无法正常播放声音的时候
不播放系统默认声音
如果有声音正在播放
那这个函数立即返回FALSE值
终止运行
SND_SYNC是采取同步播放的方式播放声音
只有在声音播放完之后函数才返回
那么关于同步播放和异步播放的问题
我想如果大家学习过多媒体技术这门课
大家就知道这个概念了
下面再介绍PlaySound这个函数
这个函数的原型是这样的
它有三个参数
第一个参数是指定播放的声音
它可以是文件名
注册的条目
或者是资源标识
播放声音的来源通过第一个参数来确定
如果没有指定
那么就首先在注册表中寻找
如果没有找到
则认为指定的是一个文件名
如果把这个参数赋空
那么停止任何当前正在播放的wav声音
如果想要停止非wav的文件
那么在第三个参数当中要加入这个参数
这是关于第一个参数的情况
第二个参数是包含被加载资源文件的一个句柄
当第三个参数里面没有SND_RESOURCE时
这个参数必须为空
第三个参数是播放声音的标识
那么它这个标识跟我们介绍的第二个函数
sndPlaySound函数中的参数的值一样
都可以使用
PlaySound中还增加了许多其他的参数
比如说SND_ALIAS这是播放声音的来源为注册条目
这个是SND_RESOURCE
播放的声音来自资源
播放的声音来自文件名
如果没有正在被使用
立即返回不再播放
这个APPLICATION
使用应用程序指定的音频
这个PURGE停止声音的播放
ALIAS_ID是预先确定的声音标识
-讨论实录
--0-0
-6-1 MFC概述
-6-2 C++的基本知识
--6-2-1 类
--6-2-2 对象
--6-2-6 重载
--6-2-9 指针
-6-3 MFC类的组织结构及主要的类的简介
--6-3-2 根类
-6-4 MFC中全局函数和全局变量
-7-1 概述
--7-1-1
--7-1-2
-7-2 按钮控件及其应用
--128B12447816EEF99C33DC5901307461
-7-3 按钮控件及其应用
--7-3
-7-4 静态控件
--7-4
-7-5 列表框控件
--7-5-1
--7-5-2
-7-6 编辑框控件
--7-6
-7-7 组合框控件
--7-7
-7-8 对话框通用控件
--7-8-1
--7-8-2
-讲义源代码
--html
-8-1&2 资源的应用以及菜单资源的使用
--8-1-1
--8-1-2
-8-3 快捷菜单的创建及其应用
--8-3
-8-4 加速键资源的创建及其使用
--8-4
-8-5 工具条资源的创建及其使用
--8-5
-8-6 字符串资源的使用
--8-6
-8-7 位图资源的创建及其使用
--8-7
-课堂示例源代码
--html
-第一次作业内容及要求
--html
--第一次作业及答题链接--作业
-9-1 概述
--9-1
-9-2 Doc/View框架的主要成员
--Video
-9-3 文档操作中的一些重要概念
--Video
-9-4 SDI编程实例
--Video
-9-5 MDI编程实例
--9-5-1
--9-5-2
-课堂示例源代码
--html
-第二次作业内容及要求
--html
--第二次作业及答题链接--作业
-10-1 利用音频函数实现多媒体程序设计
--10-1-1
--10-1-2
--10-1-3
--10-1-4
-10-2 利用Windows Media Player控件实现多媒体程序设计
--10-2
-课堂示例源代码
--html
-例11-1
--例1
-例11-2
--例11-2
-例11-3
--例11-3
-例11-4
--例11-4
-11-1 ODBC介绍与引用
--11-1
-课堂示例源代码
--html
-第三次作业及答题链接