.[ ČeskéHry.cz ].
OpenAL - bug?

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hudba / Zvuk
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frca



Založen: 28. 07. 2007
Příspěvky: 1398

PříspěvekZaslal: 22. srpen 2008, 15:46:42    Předmět: OpenAL - bug? Odpovědět s citátem

Zdravím, mám problém s OpenAL. V programu volám fci play_sound (viz níže). Problém je, že někdy zvuk zahraje a někdy ne (méně často). Dělám něco špatně, nebo je bug v aktuální implementaci OpenAL od Creative?
Smysl zdrojáku je v tom, že existuje fronta 20-ti sourců, aby mohlo hrát zároveň až 20 zvuků, při větším počtu prostě vždycky ten nejdříve začlý přestane hrát (v OpenAL to asi jinak řešit nejde, a ani to nevadí, kdyby to fungovalo).
Díky,
frca

EDIT: Asi to bylo kvůli ovladačům zvukovky, protože po nainstalování nových tento problém, jak se zdá, zmizel.

kód:
const int snd_source_size = 20;
ALuint snd_source[snd_source_size];
int snd_source_i = 0;

void source_params(ALuint source, ALuint buffer, float gain, bool looping = false)
{
    const ALfloat sourcePos[] = { 0.0, 0.0, 0.0 };
    const ALfloat sourceVel[] = { 0.0, 0.0, 0.0 };
    alSourcei (source, AL_BUFFER,   buffer   );
   alSourcef (source, AL_PITCH,    1.0      );
   alSourcef (source, AL_GAIN,     gain      );
   alSourcefv(source, AL_POSITION, sourcePos);
   alSourcefv(source, AL_VELOCITY, sourceVel);
   alSourcei (source, AL_LOOPING,  looping     );
}

void play_sound(ALuint buffer, float gain)
{
    source_params(snd_source[snd_source_i], buffer, gain);
    alSourcePlay(snd_source[snd_source_i]);
    ++snd_source_i;
    snd_source_i %= snd_source_size;
}
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1460
Bydliště: Telč

PříspěvekZaslal: 23. srpen 2008, 09:12:49    Předmět: Odpovědět s citátem

No..je to trochu alchymie, občas se mi zdálo, že to OpenAL dělá všelicos jinak než bych čekal. Co se týče řešení problému, že může hrát jen několik zvuků zaráz: je dobrý zvukům přidělit prioritu (nejlépe vypočíst jim hlasitost podle vzorce, který je uveden v dokumentaci) a podle potřeby jim přidělovat handle.
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hudba / Zvuk Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna