使用OpenAL录制音频
答
我上次检查OpenAL时很简单。您创建录制设备并开始录制。然后您只需调用get缓冲区函数。它会一直等到有足够的数据填满缓冲区,然后在有足够数据时返回。
为什么不看看OpenAL SDK附带的“捕获”示例......?
答
打开输入设备,并开始使用alcCaptureStart记录和使用alcCaptureSamples
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
#include <iostream>
using namespace std;
const int SRATE = 44100;
const int SSIZE = 1024;
ALbyte buffer[22050];
ALint sample;
int main(int argc, char *argv[]) {
alGetError();
ALCdevice *device = alcCaptureOpenDevice(NULL, SRATE, AL_FORMAT_STEREO16, SSIZE);
if (alGetError() != AL_NO_ERROR) {
return 0;
}
alcCaptureStart(device);
while (true) {
alcGetIntegerv(device, ALC_CAPTURE_SAMPLES, (ALCsizei)sizeof(ALint), &sample);
alcCaptureSamples(device, (ALCvoid *)buffer, sample);
// ... do something with the buffer
}
alcCaptureStop(device);
alcCaptureCloseDevice(device);
return 0;
}
这将是一个名为testcapture.c文件,如果你正在寻找的OpenAL的源代码,获取样品。 – 2010-07-02 08:03:24