- 注册时间
- 2004-11-1
- 最后登录
- 2018-4-24
版主
- 积分
- 548
|
楼主 |
发表于 2006-10-17 22:24:03
|
显示全部楼层
看了另外一个音频引擎audiere,http://audiere.sourceforge.net/
它的API使用比OpenAL要简单了不少。
新的1.9.4版已经增加了windows下对midi和cd音轨的支持。
现在可以方便的使用wav,aiff,ogg,flac,mp3,mod,s3m,it,xm,midi,cd等众多的格式。
只是还没有直接支持3D声效。
附一个简单的例子- #include <windows.h>
- #include <irrlicht.h>
- #include <audiere.h>
- #pragma comment (lib, "Irrlicht.lib")
- #pragma comment (lib, "audiere.lib")
- using namespace irr;
- using namespace core;
- using namespace scene;
- using namespace video;
- using namespace io;
- using namespace gui;
- using namespace audiere;
- INT WINAPI WinMain ( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
- {
- IrrlichtDevice *Device = createDevice(EDT_OPENGL, dimension2d<s32>(640, 480), 32, false, false, 0);
- IVideoDriver *Driver = Device->getVideoDriver();
- IGUIEnvironment*env = Device->getGUIEnvironment();
- ISceneManager *Scene = Device->getSceneManager();
-
- //初始化音频
- AudioDevicePtr audiereDevice;
- OutputStreamPtr stream;
- audiereDevice = OpenDevice();
- if (!audiereDevice)
- return 1;
- stream = OpenSound(audiereDevice.get(), "demo.ogg", true); //载入ogg文件
- if (!stream)
- return 2;
- stream->setRepeat(true);//并设定为循环播放
- stream->setVolume(1.0f); //50%音量
- stream->play(); //播放
- while(Device->run())
- {
- Driver->beginScene(true, true, SColor(0,64,64,64));
- Scene->drawAll();
-
- env->drawAll();
-
- Driver->endScene();
- }
- Device->drop();
- return 0;
- }
复制代码 效果是出来一个空窗口,然后循环播放demo.ogg文件。
因为api设计的简洁明快,用起来也显得相当的简单。不多说了。 |
|