MFC 蜂鸣声或播放音频
作者:互联网
应项目需要,在网上搜集 MFC 中发声或播放音频函数如下:
一、 蜂鸣声
BOOL WINAPI Beep( DWORD dwFreq, //频率 DWORD dwDuration //持续时间 ); Beep(5000, 500);
二、播放系统的消息声音
BOOL MessageBeep(UINT uType)
参数uType说明:
-1 从机器的扬声器中发出蜂鸣声。
MB_ICONASTERISK 播放由SystemAsterisk定义的声音。
MB_ICONEXCLAMATION 播放由SystemExclamation定义的声音。
MB_ICONHAND 播放由SystemHand定义的声音。
MB_ICONQUESTION 播放由SystemQuestion定义的声音。
MB_OK 播放由SystemDefault定义的声音
MessageBeep(MB_OK); Sleep(3000); MessageBeep(MB_ICONWARNING); Sleep(3000); MessageBeep(MB_ICONSTOP); Sleep(3000); MessageBeep(MB_ICONERROR); Sleep(3000); MessageBeep(MB_ICONEXCLAMATION); Sleep(3000);
三、MCI 接口实现播放任意格式声音
#include <mmsystem.h> //导入声音头文件库 #pragma comment(lib,"winmm.lib")//导入声音的链接库 mciSendString("play C:/123.mp3 ", NULL, 0, 0); mciSendString("play C:/123.wav ", NULL, 0, 0);
四、播放数字音频文件(*.WAV文件)
BOOL PlaySound(LPCSTR lpszSound, HMODULE hmod, UINT fuSound);
参数lpszSound是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAV资源的名字,或是内存中声音数据的指针, 或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。
参数hmod是应用程序的实例句柄,当播放WAV资源时要用到该参数,否则它必须为NULL。
参数fdwSound是播放标志的组合:
SND_SYNC 同步播放声音,在播放完后PlaySound函数才返回。
SND_ASYNC 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
SND_LOOP 重复播放声音,必须与SND_ASYNC标志一块使用。
SND_FILENAME lpszSound参数指定了WAVE文件名。
SND_RESOURCE lpszSound参数是WAVE资源的标识符,这时要用到hmod参数。
SND_MEMORY 播放载入到内存中的声音,此时lpszSound是指向声音数据的指针。
SND_ALIAS lpszSound参数指定了注册表或WIN.INI中的系统事件的别名。
SND_ALIAS_ID lpszSound参数指定了预定义的声音标识符。
#include <mmsystem.h> //导入声音头文件库 #pragma comment(lib,"winmm.lib")//导入声音的链接库 // 同步播放,即播放结束后才返回函数 PlaySound("D:/Downloads/Music/yohuyoha.wav", NULL, SND_SYNC); // 异步播放,即开始播放后,立即返回函数 PlaySound("D:/Downloads/Music/chaoxian.wav", NULL, SND_ASYNC);
标签:声音,SND,MFC,lpszSound,MB,音频,播放,参数,鸣声 来源: https://blog.51cto.com/13439322/2370936