Russian Qt Forum

Qt => Мультимедиа => Тема начата: Tirex от Апрель 10, 2006, 21:30



Название: сторонние библиотеки для работы со звуком
Отправлено: Tirex от Апрель 10, 2006, 21:30
Кто с какими работал? какие проще заставить работать с QT?
под win и linux?
пытался скомпилить sdl :

#include "include/SDL.h"

    if ( SDL_Init(SDL_INIT_AUDIO) < 0 ) {
        QMessageBox::critical(0, "SDL Error",
                      QString("SDL was not loaded "));
    }

получаю сообщение undefined reference to SDL_init.


Название: сторонние библиотеки для работы со звуком
Отправлено: Steven_Orko от Апрель 11, 2006, 01:18
Ну, дык либу SDL тоже надо в проект подключать ))


Название: сторонние библиотеки для работы со звуком
Отправлено: Tirex от Апрель 11, 2006, 05:47
Цитировать
Ну, дык либу SDL тоже надо в проект подключать ))

не стесняйтесь обьяснять поподробнее :).
Т.е. если я сижу с code::block просто указать путь в настройках проекта до бибилотек (libSDL.a  и т.д.) sdl?или ?


Название: сторонние библиотеки для работы со звуком
Отправлено: Dendy от Апрель 11, 2006, 08:54
Дак, Криатив толкает OpenAL, отличньІй инструмент для позиционированного звука. Для сжатого звука юзать Vorbis, для речи - Speex.

http://www.openal.org
http://www.xiph.org


Название: сторонние библиотеки для работы со звуком
Отправлено: Tirex от Апрель 11, 2006, 11:17
я бы с удовольствием попробовал и openal если кто-нибудь
 подскажет мне как это сделать.

подключил файлы libSDL.a в меню
Project -> Build options -> link libraries
 все равно пишет что не знает SDL_INIT


Название: сторонние библиотеки для работы со звуком
Отправлено: Dendy от Апрель 11, 2006, 12:07
Элементарнее работы с OpenAL ничего нет. В SDK найдёшь все необходимые примеры.

Тривиальный пример. Создаём устройство и контекст, источник звука и буффер, который он будет проигрывать.

Код:
device = alcOpenDevice( 0 );
context = alcCreateContext( device, 0 );
alcMakeContextCurrent( context );

int source, buffer;
alGenSources( 1, &source );
alGenBuffers( 1, &buffer );

...

QByteArray sound_data;
// Load sound data from something to sound_data
alBufferData( buffer, AL_FORMAT_STEREO16/*num channels*/, sound_data.constData(), sound_data.size(), 44100/*frequency*/ );

alSourcei( source, AL_BUFFER, buffer );
alSourcePlay( source );

...

alcDestroyContext( context );
alcCloseDevice( device );


Дёшево и сердито :-D


Название: сторонние библиотеки для работы со звуком
Отправлено: Tirex от Апрель 11, 2006, 12:28
Спасибо за пример!
вот только у меня та проблема что писал выше, либы, подключил путь прописан, (в makefiles он есть) что еще нехватает?


Название: сторонние библиотеки для работы со звуком
Отправлено: Steven_Orko от Апрель 11, 2006, 23:02
Если ты имеешь ввиду, что у тебя до сих пор анреферес резолвед )))), то посмотри, возможно используется условная компиляция. Ну, там какие флаги препроцессору надо указать, чтобы определенный код был открыт.
У меня так было в либами к СУБД Линтер, пока не укажешь два объявления, будет писать, что неизвестное связывание...