【发布时间】:2011-07-25 01:14:21
【问题描述】:
大家好,我目前正试图弄清楚如何播放我使用正弦波生成的音调。
这是我的代码:
#include <iostream>
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
#include <Math.h>
using namespace std;
int main (int argc, char * const argv[]) {
int number = 0;
int i, size;
double const Pi=4*atan(1);
cout << "Enter number of seconds:" << endl;
scanf("%d", &number);
size = 44100*number;
unsigned char buffer [size]; //buffer array
for(i = 0; i < size; i++){
buffer[i] = (char)sin((2*Pi*440)/(44100*i))*127;
}
return 0;
}
显然它目前什么也没做,因为我不知道如何播放缓冲区。 我不想生成一个wav文件,也不想加载一个。我只想播放我生成的缓冲区。
我目前正在使用 Mac OS X,并尝试使用 OpenAL 方法 - 但是我发现 alut 和 alu 不再是其中的一部分,如果我尝试使用它,那么事实证明它无论如何都已被废弃。 我也尝试包含 QAudioOutput,但由于某种原因,它似乎不在我的 Mac 上的任何位置。
我只想简单地播放我创建的音调。有没有人有什么可以指点我的?
谢谢大家!!!
【问题讨论】:
标签: c++ audio generator wave trigonometry