VC学习笔记6音频处理
来源:互联网 发布:英文字帖 知乎 编辑:程序博客网 时间:2024/05/16 01:02
音频处理
首先在资源视图右击导入音频资源,记下ID为IDR_BWAVE
在视图类的源文件中需要导入库,该库为windows多媒体操作的接口
#include"Mmsystem.h"
#pragma comment (lib,"Winmm.lib")
然后在所需要播放音频的响应函数中加入
PlaySound(MAKEINTRESOURCE(IDR_BWAVE),AfxGetResourceHandle(),
SND_ASYNC|SND_RESOURCE|SND_NODEFAULT);
就能实现播放音频
当然,如果你想播放任意文件名为参数的音频,可以调用这个类
注意了这里的调入参数为m_hWnd ,每个程序都会自动生成变量m_hWnd
首先在资源视图右击导入音频资源,记下ID为IDR_BWAVE
在视图类的源文件中需要导入库,该库为windows多媒体操作的接口
#include"Mmsystem.h"
#pragma comment (lib,"Winmm.lib")
然后在所需要播放音频的响应函数中加入
PlaySound(MAKEINTRESOURCE(IDR_BWAVE),AfxGetResourceHandle(),
SND_ASYNC|SND_RESOURCE|SND_NODEFAULT);
就能实现播放音频
当然,如果你想播放任意文件名为参数的音频,可以调用这个类
class CPlayWave{protected: MCIDEVICEID m_DeviceID; //设备ID MCIDEVICEID m_ElementID; //元素IDpublic: CPlayWave() { m_DeviceID=0; m_ElementID=0; InitDevice(); } ~CPlayWave() { if(m_ElementID) Stop(); if(m_DeviceID) TerminalDevice(); } DWORD InitDevice() //初始化设备 { DWORD dwResult=0; if(m_DeviceID==0) { MCI_OPEN_PARMS mciInitParms; mciInitParms.lpstrDeviceType=(LPSTR)MCI_DEVTYPE_WAVEFORM_AUDIO; dwResult=mciSendCommand(NULL,MCI_OPEN,MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID|MCI_WAIT,(DWORD)(LPVOID)&mciInitParms); m_DeviceID=mciInitParms.wDeviceID; } return dwResult; } DWORD TerminalDevice() { DWORD dwResult=0; if(m_DeviceID) { dwResult=mciSendCommand(m_DeviceID,MCI_CLOSE,NULL,NULL); } m_DeviceID=0; return dwResult; } DWORD Play(HWND hWnd,LPCSTR pFileName) { MCI_OPEN_PARMS mciOpenParms; memset(&mciOpenParms,0,sizeof(MCI_OPEN_PARMS)); mciOpenParms.lpstrElementName=pFileName; DWORD dwResult=0; dwResult=mciSendCommand(m_DeviceID,MCI_OPEN,MCI_OPEN_ELEMENT,(DWORD)(LPVOID)&mciOpenParms); if(!dwResult) { m_ElementID=mciOpenParms.wDeviceID; MCI_PLAY_PARMS mciPlayParms; mciPlayParms.dwCallback=(DWORD)hWnd; dwResult=mciSendCommand(m_ElementID,MCI_PLAY,MCI_NOTIFY,(DWORD)(LPVOID)&mciPlayParms); } return dwResult; } DWORD Stop() { DWORD dwResult=0; if(m_ElementID) { dwResult=mciSendCommand(m_ElementID,MCI_CLOSE,NULL,NULL); m_ElementID=0; } return dwResult; }};
注意了这里的调入参数为m_hWnd ,每个程序都会自动生成变量m_hWnd
对wav文件格式的解析可以参考
http://blog.csdn.net/pi9nc/article/details/12570841
0 0
- VC学习笔记6音频处理
- Python音频处理学习笔记(未完)
- 音频处理入门笔记
- 音频技术学习笔记
- 学习笔记:音频音质
- 【HTML5学习笔记】音频
- vc图像处理学习笔记1-图像格式分析及显示
- Alsa音频驱动学习笔记
- 学习笔记:音频之耳机
- tensorflow学习笔记(四十):tensorflow语音识别 及 python音频处理库
- iOS 学习总结----音频/视频处理
- 学习音频信号处理,该如何入门?
- 音频和视频处理 6
- 孙鑫VC学习笔记 6(1)
- 孙鑫VC学习笔记 6(2)
- 孙鑫VC学习笔记 6(3)
- VC++学习笔记1
- VC++学习笔记2
- jQuery的简单应用
- 递归函数用mystrlen(char *buf,int N) 实现统计字符串中的第一个空字符前面的字符串长度
- Vim 实用技术,第 1 部分: 实用技巧
- 自定义控件-消息个数提醒控件
- IDEA 及 Gradle 使用总结
- VC学习笔记6音频处理
- 植物大战僵尸HTML5源码
- 欢迎使用CSDN-markdown编辑器
- Java链表形式实现多项式相加
- 深度搜索的应用----环路最小路径
- [数据结构]最小堆的类模板实现
- 在Ubuntu虚拟机中安装VMware tools异常中断 Unable to start services for VMware Tools
- #ifndef#define#endif防止头文件重复包含, 你不是真的懂
- send函数以及recv函数