MFC播放声音文件

一.播放声音文件的简单方法 
  在VC++   中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL   sndPlaySound   (   LPCSTR   lpszSound,UINT   fuSound   );   或BOOL   PlaySound(   LPCSTR   lpszSound,   HMODULE   hmod,   DWORD   fuSound   );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名,   hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。   例如播放C:\sound\music.wav可以用sndPlaySound   ( "c:\\sound\\music.wav ",SND_ASYNC);或PlaySound( "c:\\sound\\music.wav ",NULL,   SND_ASYNC|SND_NODEFAULT   );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。 

二.将声音文件加入到程序中 
  在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.WAV文件的声音播放。 
  要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件(实现过程并不复杂,这里不在叙述)。假设生成的声音文件资源标识符为IDR_WAVE1。在播放时只需要调用下面的语句: 
  PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(),     SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP); 
  其中MAKEINTRESOURCE()宏将整数资源标识符转变为字符串,AfxGetResourceHandle()函数返回包含资源的模块句柄, 
SND_RESOURCE是必须的标志。 
  作为资源的声音文件的第二种播放方法是把资源读入内存后作为内存数据播放。具体步骤入下: 
  1.获得包含资源的模块句柄: 
  HMODULE   hmod=AfxGetResourceHandle(); 
  2.检索资源块信息: 
  HRSRC   hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T( "WAVE ")); 
  3.   装载资源数据并加锁: 
  HGLOBAL   hGlobalMem=LoadResource(hmod,hSndResource); 
LPCTSTR   lpMemSound=(LPCSTR)LockResource(hGlobalMem); 
  4.播放声音文件: 
  sndPlaySound(lpMemSound,SND_MEMORY)); 
  5.释放资源句柄: 
  FreeResource(hGlobalMem);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值