Ahoj,
při zobrazení modálního dialogu se má přehrát jeden zvuk synchronně a po
jeho skončení se má přesunout focus na ListBox, který slouží jako
zvukové menu ve hře pro nevidomé. Menu po té přehraje zvuk s popisem první
položky v menu. Ale v jádru jde jen o ty dva po sobě přehrávané zvuky.
Zkusil jsem: Mám třídu SoundMachine, která spravuje jednotlivé zvuky,
dále pak třídu SoundItem, která spravuje jeden zvuk. Můj poslední pokus
vypadal následovně:
metoda SoundItem.PlaySync uloží do SoundMachine handle synchronního zvuku a
spustí přehrávání.
Metoda SoundItem.Play zkontroluje, je-li aktivní nějaký synchronní zvuk.
Pokud ano, nastaví callback, který po skočení prvního zvuku přehraje nový
zvuk. A nefunguje to!
public void Play()
{
int oldHandle = )SoundMachine.LastSyncSoundHandle;
if (oldHandle == -1 && BASS_ChannelIsActive(oldHandle) !=
BASSActive.BASS_ACTIVE_PLAYING) // žádný synchronní zvuk
BASS_ChannelPlay(_handle, true);přehraj okamžitě
else // počkej na dokončení zvuku
{
// vytvoř delegáta
SYNCPROC p = new SYNCPROC((handle, channel, data, user) =>
{
SoundMachine.LastSyncSoundHandle = -1; smaž číslo starého zvuku
BASS_ChannelPlay(_handle, true); // přehraj nový
};
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.