А какое устройство ты ставишь в качестве девайса?
Generic? Какая звуковуха у тебя?
как выглядит EXT_STRING?
@!!ex
Не думаешь же ты, что человек со встроенной звуковухой будет пытаться прикрутить EAX?
.Scotina
> Не думаешь же ты, что человек со встроенной звуковухой будет пытаться
> прикрутить EAX?
Почему нет? У меня на встроенной в ноутбук тестовый пример работает. Или в смысле качество плохое?
В смысле оно должно гарантировано и в полном объёме работать только на картах от самой Креатив.
Проверил все сомнительные места, так сказать, моего проекта и оказалось что ошибка вызывается из-за моей OpenAl32.dll. Хотя она у меня уже давно и не думалось что в ней ошибка. После того, как я скачал другую dll ошибка пропала. Но звук с таким эффектом так и не получается сделать.
Вот код :
AlutInit(nil,argv); AlGenBuffers(1, @buffer); AlutLoadWavFile('footsteps.wav', format, data, size, freq, loop); AlBufferData(buffer, format, data, size, freq); AlutUnloadWav(format, data, size, freq); AlGenSources(1, @source); AlSourcei ( source, AL_BUFFER, buffer); AlSourcef ( source, AL_PITCH, 1.0 ); AlSourcef ( source, AL_GAIN, 1.0 ); AlSourcefv ( source, AL_POSITION, @sourcepos); AlSourcefv ( source, AL_VELOCITY, @sourcevel); AlSourcei ( source, AL_LOOPING, AL_TRUE); AlListenerfv ( AL_POSITION, @listenerpos); AlListenerfv ( AL_VELOCITY, @listenervel); AlListenerfv ( AL_ORIENTATION, @listenerori); // Check for EAX 2.0 support V := alIsExtensionPresent('EAX2.0'); FnName := 'EAXSet'; eaxSet := alGetProcAddress(FnName); FnName := 'EAXGet'; eaxGet := alGetProcAddress(FnName); //set the effect Env := EAX_ENVIRONMENT_PADDEDCELL; eaxSet(DSPROPSETID_EAX20_ListenerProperties, DSPROPERTY_EAXLISTENER_ENVIRONMENT or DSPROPERTY_EAXLISTENER_DEFERRED, 0, @Env, sizeof(TALuint)); // Commit settings on source 0 eaxSet(DSPROPSETID_EAX20_BufferProperties, DSPROPERTY_EAXBUFFER_COMMITDEFERREDSETTINGS, source, nil, 0); // Commit Listener settings eaxSet(DSPROPSETID_EAX20_ListenerProperties, DSPROPERTY_EAXLISTENER_COMMITDEFERREDSETTINGS, 0, nil, 0);
и запуск по кнопке
AlSourcePlay(source);
Пробовал :
1. Device := alcOpenDevice('DirectSound3D');
2. Device := alcOpenDevice('Generic Software');
3. Device := alcOpenDevice(nil);
Все также. Звук без эффекта
@!!ex
Что такое EXT_STRING и "с чем его едят"?
.Scotina
> В смысле оно должно гарантировано и в полном объёме работать только на картах
> от самой Креатив.
Это относится ко всему OpenAL.
EAX 2.0 держит любая более менее современная звуковуха. В том числе и интегрированные.
Spike
> Что такое EXT_STRING и "с чем его едят"?
Это то, что возвращает alGetString(AL_EXTENSIONS) содержит список всего того, что умеет открытый аудио девайс.
Рекомендую писать эту строку в лог проги при инициализации звука.
@!!ex
alGetString(AL_EXTENSIONS) >>> EAX 2.0, EAX 3.0, EAX Unified, and EAX-AC3
Дайте кто-нибудь работающий пример http://www.noeska.com/doal/lesson12.aspx c библиотеками и юнитами. Или какой-нибудь другой.. А то у меня на этом звук есть, но эффекта нет.
kipar
Огромное спасибо :) Взял Openal32.dll , Wrap_oal.dll из примера звукового движка и все заработало!
Тема в архиве.