首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用OpenAL录制音频

使用OpenAL录制音频
EN

Stack Overflow用户
提问于 2010-06-17 02:30:54
回答 2查看 17.9K关注 0票数 14

我已经比较了C++中的各种音频库。我想知道,我从OpenAL开始有点卡住了。谁能指出一个示例程序如何在C++中使用OpenAL从麦克风录音。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-26 16:35:30

上一次我查看OpenAL时,它非常简单。您创建录制设备并开始录制。然后,您只需调用get buffer函数。它将等待,直到有足够的数据来填充缓冲区,然后在有足够的数据时返回。

为什么不看看OpenAL SDK附带的"capture“示例呢?

票数 8
EN

Stack Overflow用户

发布于 2010-07-02 17:31:38

打开输入设备,使用alcCaptureStart开始录制,并使用alcCaptureSamples获取样本

代码语言:javascript
复制
#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;
}
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3056113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档