Осваиваю fmod ex (4.26, linux), вроде всё замечательно, но возник затык/вопрос.
При попытке проиграть один и тот же буфер через разные сорсы - проигрывается только в последнем ;(
// int - просто номер экземпляров в массиве, хранящемся в классе Sound int chan1 = Sound->AddChannel(); int chan2 = Sound->AddChannel(); int snd1 = Sound->LoadSound("/home/wingman/code/svn/repos/app1/sounds/1.wav", true); Sound->PlaySound(snd1, chan1); int snd2 = Sound->LoadSound("/home/wingman/code/svn/repos/app1/sounds/2.wav", true); Sound->PlaySound(snd2, chan1); // через x секунд: Sound->PlaySound(snd2, chan2); //- тут начинает проигрываться через 2й сорц, но через первый - замолкает
Звук читается как поток? Тогда все верно...
Ога, спасибо, понял =)
Сделал с createSound, сразу другой вопрос: несколько раз проигрывается одновременно оба чанела, но через некоторое время - опять двадцать пять, начинает играть только один в один момент времени, и так до перезапуска. Что такое, как побороть? =)
Предполагаю, нужно както освобождать канал после окончания звука.
Собсно, если бы сразу покопался повнимательнее (читай: если бы не лень), нашел бы сразу... Периодически нужно вызывать FMOD::System->update(), чтобы обновлять информацию в библиотеке, в т.ч. помечать свободными каналы, звук в которых уже отиграл. Тупой косяк =)
Тема в архиве.