Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在EcliSpeIDE中使用OpenSound库OpenAL(freealut)?_C++_Audio_Openal - Fatal编程技术网

C++ 如何在EcliSpeIDE中使用OpenSound库OpenAL(freealut)?

C++ 如何在EcliSpeIDE中使用OpenSound库OpenAL(freealut)?,c++,audio,openal,C++,Audio,Openal,我使用以下命令成功安装了OpenAL: yum install freealut freealut-devel 但是,在这个问题之后,我添加了一些C++代码来处理下面的库: #include <AL/al.h> #include <AL/alc.h> #include <AL/alut.h> void init_al() { ALCdevice *dev = NULL; A

我使用以下命令成功安装了OpenAL:

  yum install freealut freealut-devel 

但是,在这个问题之后,我添加了一些C++代码来处理下面的库:

     #include <AL/al.h>
     #include <AL/alc.h>
     #include <AL/alut.h>

    void init_al()
    {
        ALCdevice *dev = NULL;
        ALCcontext *ctx = NULL;

        const char *defname = alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER);
        std::cout << "Default device: " << defname << std::endl;

        dev = alcOpenDevice(defname);
        ctx = alcCreateContext(dev, NULL);
        alcMakeContextCurrent(ctx);
        alGenBuffers(1, &buf);

        /* Fill buffer with Sine-Wave */
        freq = 1440.f;
        seconds = 0.2;
        sample_rate = 22050;
        buf_size = 6000;

        samples = new short[buf_size];
        for(int i=0; i<buf_size; ++i) {
            samples[i] = 32760 * sin( (2.f*float(M_PI)*freq)/sample_rate * i );
        }

        /* Download buffer to OpenAL */
        alBufferData(buf, AL_FORMAT_MONO16, samples, buf_size, sample_rate);


        /* Set-up sound source and play buffer */
         src = 0;
        alGenSources(1, &src);
        alSourcei(src, AL_BUFFER, buf);

        alGenBuffers(1, &buf);

        /* Fill buffer with Sine-Wave */
        freq = 1000.f;
        seconds = 0.2;
        sample_rate = 22050;
        buf_size = 12000;

        samples = new short[buf_size];
        float add=1;
        for(int i=0; i<buf_size; ++i) {
            samples[i] = 32760 * sin( (2.f*float(M_PI)*freq)/sample_rate * i );
        }

        /* Download buffer to OpenAL */
        alBufferData(buf, AL_FORMAT_MONO16, samples, buf_size, sample_rate);


        /* Set-up sound source and play buffer */
         src2 = 0;
        alGenSources(1, &src2);
        alSourcei(src2, AL_BUFFER, buf);

    }
#包括
#包括
#包括
void init_al()
{
ALCdevice*dev=NULL;
ALCcontext*ctx=NULL;
const char*defname=alcGetString(空,ALC\u默认\u设备\u说明符);

std::cout这些是标准的openal头文件-不确定为什么要使用alut或freealut

#include  <AL/al.h>
#include  <AL/alc.h>

//   #include <OpenAL/al.h>   // apple only
//   #include <OpenAL/alc.h>   // apple only
因此,它的编译行标志将是-l,后跟in-lalut标志

您提供的代码不完整-它缺少许多var定义,因此无法在我的末尾编译

alut
or maybe  freealut