VC++播放音频文件和音频数据的方法
最后更新于:2022-04-01 20:34:33
在程序中,很有可能会涉及到播放一些音频文件(比如:.wav文件)和音频数据,这个问题怎么解决呢?VC++中想要播放一个音频文件(.wav)是很容易的,只要调用WIndows API函数PlaySound()就可以了,但是,如果您想播放自己在程序中产生的一段音频数据,就不是那么简单了,需要利用WIndows wave I/O API的几个函数来实现。
下面结合实例来说明(**完整实例可在我的CSDN资源中下载:[http://download.csdn.net/detail/margin1988/3677328](http://download.csdn.net/detail/margin1988/3677328)**,该例子利用WIndows wave I/O API 函数,实现了播放自定义的一段音频数据(通过sin()函数产生);并且使用了PlaySound()函数播放“250.wav”文件):
~~~
//需包含的头文件
#include
#pragma comment(lib,"winmm.lib")
//PlaySound()函数和其他WIndows wave I/O API 函数的使用
#include "math.h"//sin()函数的使用
~~~
1.播放文件:
~~~
CString path;
path.Format("%s250.wav",g_BasePath);
//g_BasePath的取值不用多说,前面已详细介绍了。
PlaySound(_T(path),0,SND_FILENAME|SND_ASYNC);
~~~
2.播放数据:
(1)确定音频数据的格式及内容:
~~~
int rate=1000; //刺激率
int sampleRate = 44100; //采样率
const int NUMPTS = (int) (44100 * 0.5); // 0.5s
short int waveOut[NUMPTS];//音频数据
//内容
for (int i=0;i
';