扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可以使用PlaySound()函数播放声音文件,
目前创新互联建站已为成百上千的企业提供了网站建设、域名、网络空间、网站托管、企业网站设计、安溪网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
该函数原型位于#include mmsystem.h中,
因此要使用PlaySound,首先需要添加对这个头文件的引用。
提示:mm就是MultiMedia的简写,多媒体
【1、函数使用说明】
函数原型为: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);
返回值表示是否播放成功。
参数pszSound是要播放声音的文件名,
只支持WAV等格式的文件(应该不能播放MP3格式文件);
你可以去mp3.baidu.com用“wav”为关键词可以搜到很多wav音乐,
也可以用工具将其他格式的转换为wav格式的。
参数hmod是应用程序的实例句柄,一般传递NULL就可以;
参数fdwSound是标志的组合掩码,
可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。
SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);
SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;
SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;
SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。
【2、使用举例】
PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 启
动.wav"),NULL,SND_FILENAME|SND_SYNC);
注意的问题:文件名中的反斜线要用“\\”,
因为C语言中“\”默认是转义符,
如果要表示“\”则需要使用“\\”,
对这点不明白的请回去翻一下C语言的书;
对中文字符串要使用TEXT宏。
调用DOS命令,让 Windows Media Player 帮你播放
下面播放 "zzd.wav"
你若有别的格式文件,Windows Media Player 能识别的都可以播放。
#include stdio.h
void play_wav(char *s){
char cm[100];
sprintf(cm,"mplay32.exe /play %s",s);
system(cm);
}
main()
{
char s[100]="zzd.wav";
play_wav(s);
getchar();
return 0;
}
可以使用PlaySound()函数播放mp3音频,该函数原型位于windows.h。
PlaySound函数的声明为:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
参数pszSound是指定了要播放声音的字符串。
参数hwnd是应用程序的实例句柄,除非pszSound的指向一个资源标识符(即fdwSound被定义为SND_RESOURCE),否则必须设置为NULL。
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
使用PlaySound函数时需要在#includewindows.h后面加上(注意:不能加在前面):
例程:
CFileDialog dlg(TRUE, "mp3", "*.mp3", OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, "mp3文件(*.mp3)|*.mp3|");
/*创建选择对话框,让用户从文件夹中选取一个MP3文件*/
int iRet = dlg.DoModal();//获得对话框返回值
if(IDOK == iRet) //如果返回值成功,表明成功获取一个MP3文件
{
CString pathName= dlg.GetPathName(); //得到文件的路径名称
PlaySound( pathName , NULL, SND_FILENAME | SND_ASYNC);//用playsound函数播放该文件
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流