我用OpenGL ES渲染並使用OpenAL聲音在C++中製作了一個遊戲。爲了使它在iPhone上工作,我無法使用ALUT,因此我只使用「al.h」和「alc.h」。OpenSL ES中是否有與OpenAL <alc.h>相當的功能?
我現在嘗試使用最後一個Android SDK構建我的遊戲,該SDK支持本機應用程序,並通過OpenSL ES增加了聲音支持。 (我相信OpenSL ES是什麼的OpenAL的OpenGL ES是OpenGL的。)
我想知道,如果碰巧有一個相當於「alc.h」文件OpenSL ES:
#if defined (MYAPP_IOS)
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
#elif defined (MYAPP_ANDROID)
#include <EGL/egl.h>
// alc.h equivalent for OpenSL ES here ?
#else
#include <AL/al.h>
#include <AL/alc.h>
#endif
如果沒有,是否有人知道一種方式來處理OpenSL ES中的上下文和設備,方式與OpenAL類似(或者可能是在不需要「alc.h」的情況下處理這兩種方法的方式)。這兩個錯誤的Android NDK,構建回報是這種類型的:
error: ISO C++ forbids declaration of 'ALCcontext' with no type
我曾看過它,但我不知道OpenAL的LGPL許可證是否禁止使用它:我必須動態鏈接OpenAL,這在iPhone上是不可能的,但我不知道它在Android上是否可行(並且容易) 。有人有線索嗎? (請參閱http://pielot.org/2010/12/14/openal-on-android/#comment-362瞭解更多詳情 – teupoui 2011-01-07 15:18:21