问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++里playsound函数到底如何使用?

发布网友 发布时间:2022-04-25 12:24

我来回答

2个回答

热心网友 时间:2022-06-08 00:43

//---------播放声音头文件和类型库
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")
一.播放声音文件的简单方法
  在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.W***文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。二.将声音文件加入到程序中
  在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.W***文件的声音播放。
  要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件(实现过程并不复杂,这里不在叙述)。假设生成的声音文件资源标识符为IDR_W***E1。在播放时只需要调用下面的语句:
  PlaySound(MAKEINTRESOURCE(IDR_W***E1),AfxGetResourceHandle(),   SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);
  其中MAKEINTRESOURCE()宏将整数资源标识符转变为字符串,AfxGetResourceHandle()函数返回包含资源的模块句柄,
SND_RESOURCE是必须的标志。
  作为资源的声音文件的第二种播放方法是把资源读入内存后作为内存数据播放。具体步骤入下:
  1.获得包含资源的模块句柄:
  HMODULE hmod=AfxGetResourceHandle();
  2.检索资源块信息:
  HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));
  3. 装载资源数据并加锁:
  HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
  4.播放声音文件:
  sndPlaySound(lpMemSound,SND_MEMORY));
  5.释放资源句柄:
  FreeResource(hGlobalMem);

热心网友 时间:2022-06-08 00:43

函数原型为 BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

参数pszSound是要播放声音的文件名,只支持WAV等格式的文件,
参数hmod是应用程序的实例句柄,一般传递NULL就可以,
参数fdwSound是标志的组合掩码,可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。
SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);
SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;
SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;
SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。

举例:
PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 启动.wav"),NULL,SND_FILENAME|SND_SYNC);【参考http://hi.baidu.com/dspeeding/blog/item/4e73681d44f5f7c2a78669ed.html】

注:在vs2010环境下,需要加上#pragma comment(lib, "winmm.lib") 【如果说的是multimedia API,直接在源代码里面加一行#pragma comment(lib, "winmm.lib")
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
急求高人解答 ···管理类的问题 ···!!!急急急···我会在线等... ...如果基层管理幅度为8,高层管理人员管理幅度为3,则该公司中层管理人员... ...发生化学变化的实质是( )A.分子间隔发生变化B.物质状态发生改变C... 下列变化不能说明发生了化学变化的是( )A.变化时有电子的得失或共用电... 下列描述正确的是( )A.固态物质的分子间无间隔B.液态物质的分子不断运动... 原来微信打开这个功能,能够看到马路上的街景,涨知识了! ...百度帐号被人在异地登录了,问题是没有任何人知道我的密码啊?而且也... 医疗事故纠纷和医疗损害纠纷的区别是什么 医疗纠纷与医疗事故的定义是什么? 医疗事故纠纷是指什么的 关于windowsAPI中的Playsound函数 android soundpool支持哪些音频格式 playsound()函数第二个参数是什么? c-sound是美国什么品牌音响?及参数 sound blessed sb0060参数 matlab中 sound函数怎么用 haishi 关于sound()函数的问题~~~‘ mssound参数不正确 matlab中sound函数中取样频率变化了为什么声音也变了? ping dns服务器 大概10次左右有一次丢包 3D Sound的基本参数 网络ping DNS 丢包多是什么原因 求C语言里面 像sound( );这样的 函数 里面的参数 和声音的 关系。_百 ... ping DNS丢包率高怎么回事? C语言中sound函数可以播放的声音是什么声音 ping 阿里云DNS出现丢包情况怎么办? 怎样减少丢包对DNS服务器的影响 ping 网关正常 ping DNS 服务器丢包严重 ping DNS丢包严重? 电信DNS服务器频道丢包 用turbo c中sound()函数编程,运行时声音特别尖 vb playsound 具体函数如何使用?求详细代码解析 actionscript里的loadSound()调用的是那个播放器 想问问你们兼职平时都是去哪里找的? 找兼职工作的在哪里找? 语音直播怎么弄视频 是处女,但阴唇黑了,怎么办 那阴唇变黑是怎么回事 外阴唇黑怎么变白?女人阴唇为什么变黑? 我女朋友的大阴唇黑是怎么回事 19岁处女小阴唇黑色,怎么回事 阴唇黑了怎么办 lv腰带质量好吗? 如何保养LV腰带? LV皮带真假如何区分?如何鉴定LV皮带真假? lv腰带怎么辨别 怎样鉴定LV皮带的真伪? lv皮带90/36是什么意思 梦见已死去的父亲戴着粉色帽子 如何辨别Lv皮带的真假? 具体.详细.