首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在eclispe中使用开放的声音库OpenAL(freealut )?

如何在eclispe中使用开放的声音库OpenAL(freealut )?
EN

Stack Overflow用户
提问于 2013-08-12 15:10:52
回答 1查看 1.6K关注 0票数 0

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

代码语言:javascript
复制
  yum install freealut freealut-devel 

但是,在此之后,我添加了一些c++代码来处理这个库,如下所示:

代码语言:javascript
复制
     #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);

    }

我认为我的问题在于可以添加到Eclipse项目规范中的链接器,我包括一个链接器、alut、,但它也表明了一个错误。我有什么问题?

EN

回答 1

Stack Overflow用户

发布于 2013-08-12 21:32:34

这些是标准的开放头--不确定为什么要使用alut或sure alut。

代码语言:javascript
复制
#include  <AL/al.h>
#include  <AL/alc.h>

//   #include <OpenAL/al.h>   // apple only
//   #include <OpenAL/alc.h>   // apple only

我使用标准的openal,它的链接器标志是-lopenal。

不过,我还没有使用免费的。它的链接标志可能是

代码语言:javascript
复制
alut
or maybe  freealut

因此,它的编译行标志应该是-l,然后是-lalut中的标志。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18190578

复制
相关文章

相似问题

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