PlaySound函数的声明为:BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);参数pszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。播放标志以及含义:SND_APPLICATION 用应用程序指定的关联来播放声音。 SND_ALIAS pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 SND_ALIAS_ID pszSound参数指定了预定义的声音标识符。 SND_ASYNC 用异步方式播放声音,PlaySound函数在开始播放后立即返回。 SND_FILENAME pszSound参数指定了WAVE文件名。 SND_LOOP 重复播放声音,必须与SND_ASYNC标志一块使用。 SND_MEMORY 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 SND_NODEFAULT 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 SND_NOSTOP PlaySound不打断原来的声音播出并立即返回FALSE。 SND_NOWAIT 如果驱动程序正忙则函数就不播放声音并立即返回。 SND_PURGE 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 SND_RESOURCE pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 SND_SYNC 同步播放声音,在播放完后PlaySound函数才返回。 在wince windows目录下有一个名为Sound.wav的声音文件,在Windows启动时会播放这个声音。

下面用三种方法来调用PlaySound函数播出Windows 的启动声音。

第一种方法是直接播出声音文件,相应的代码为:PlaySound(_T("\windows\Sound.wav"), NULL, SND_FILENAME | SND_ASYNC);如果采用如下方式:PlaySound(_T("\Windows\startmachine.wav"),NULL,SND_ASYNC|SND_NODEFAULT|SND_LOOP);会有什么现象呢?就是开机后一直循环播放该声音,直到有触摸事件才会停止播放注意参数中的路径使用两个连续的反斜杠转义代表一个反斜杠。

第二种方法是把声音文件加入到资源中,然后从资源中播放声音。Visual C++支持WAVE型资源,用户在资源视图中单击鼠标右键并选择Import命令,然后在文件选择对话框中选择The Microsoft Sound.wav文件,则该文件就会被加入到WAVE资源中。假定声音资源的ID为IDR_STARTWIN,则下面的调用同样会输出启动声音:PlaySound((LPCTSTR)IDR_STARTWIN, AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);

补充:将要添加的wav资源导入即可

第三种方法是用PlaySound播放系统声音,Windows启动的声音是由SystemStart定义的系统声音,因此可以用下面的方法播放启动声音:PlaySound(“SystemStart”,NULL,SND_ALIAS|SND_ASYNC);函数sndPlaySound的功能与PlaySound类似,但少了一个参数。函数的声明为:BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound); 除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。参数fuSound是如何播放声音的标志,可以是SND_ASYNC、SND_LOOP、SND_MEMORY、SND_NODEFAULT、SND_NOSTOP和SND_SYNC的组合,这些标志的含义与PlaySound的一样。可以看出,sndPlaySound不能直接播放声音资源。要用该函数播放WAVE文件,可按下面的方式调用:sndPlaySound(“MYSOUND.WAV”,SND_ASYNC);

PlaySound使用进阶相关推荐

  1. python进阶——AI视觉实现口罩检测实时语音报警系统

    大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页:lqj_本人的博客_CSDN博客-微信小程序,前端,vue领域博主lqj_本人擅长微信小程序,前端,vue,等方面的知识https:// ...

  2. 【Visual C++】游戏开发五十一 浅墨DirectX教程十九 网格模型进阶之路

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8770426 作者:毛星云(浅墨 ...

  3. 网格系统高级进阶,很好懂

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/zhmxy555/article/details/8770426 作者:毛星云(浅墨 ...

  4. python进阶——自动驾驶寻找车道

    大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识h ...

  5. 机器学习(六)Python实现进阶人脸识别

    机器学习(六)Python实现进阶版人脸识别 使用到的库:dlib+Opencv python版本:3.8 编译环境:Jupyter Notebook (Anaconda3) 训练模型:dlib_fa ...

  6. 正式压力测试:locust进阶,超简单搭建生产级locust集群

    locust进阶,搭建生产级locust集群 本教程基于k8s集群搭建,使用helm作为包管理工具 通过helm安装locust

  7. 伍六七带你学算法 进阶篇-生命游戏

    有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...

  8. NLP进阶之(七)膨胀卷积神经网络

    NLP进阶之(七)膨胀卷积神经网络 1. Dilated Convolutions 膨胀卷积神经网络 1.2 动态理解 1.2.2 转置卷积动画 1.2.3 理解 2. Dilated Convolu ...

  9. js进阶 13-5 jquery队列动画如何实现

    js进阶 13-5 jquery队列动画如何实现 一.总结 一句话总结:同一个jquery对象,直接写多个animate()就好. 1.什么是队列动画? 比如说先左再下,而不是左下一起走 2.怎么实现 ...

  10. 一个java高级工程师的进阶之路【转】

    一个java高级工程师的进阶之路[转] 宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) ...

最新文章

  1. Colly源码解析——结合例子分析底层实现
  2. 量子计算机神器,量子计算技术再获神器 科学家开发出新的成像技术
  3. vs文件上传失败--超过最大字符限制
  4. html超市代码,前端 CSS : 5# 纯 CSS 实现24小时超市
  5. MFC中修改应用程序主窗口的标题
  6. o型圈沟槽设计软件_265 电机壳体上轴承室和轴承外圈增加的O型圈工艺对轴承外圈(防蠕动)作用有多大?...
  7. python求最大回文数_python最长回文串算法
  8. 在libvirt中使用SanLock
  9. c语言二级考试笔试真题,全国计算机等级考试二级C语言笔试真题及答案.doc
  10. php copy路径出错,php – copy()函数的第二个参数不能是一个目录
  11. 电脑录像,如何录制游戏视频 游戏视频录制的方法
  12. 目前1KB文件夹快捷方式病毒扫清方法
  13. Reno与RACK对丢失/重传报文的标记
  14. strongSwan之ipsec.secrets配置手册
  15. 黑客余弦——我的世界观(一)【转】
  16. 人文精神、人文教育与高等教育 徐梦秋
  17. 对数数学知识回忆(log)
  18. Linux安装和使用Xftp6和Xshell6教程
  19. 中小学直播活动如何选择编码器还是直播机?
  20. 一切都显得那么苍白无力

热门文章

  1. 简历中“项目经历“该如何写?
  2. 每天一个JavaScript小特效——会魔法的旋转魔方相册
  3. Python全栈工程师系列学习之学习记录
  4. 比较全的OA系统功能模块列表
  5. java计数器生成流水号_CODESOFT打印流水号
  6. 用MySQL判断一个数为素数_判断一个数是否是素数
  7. 银联在线php支付接口,PHP网站在线银联支付实现大额付款案例
  8. 财商第2课笔记_复利
  9. Git 打补丁-- patch 和 diff 的使用(详细)
  10. t-SNE可视化-Python实现