Предыдущая Следующая
private static string[] cueNames = new string[]
"platform", "boom",
};
/// <summary>
/// Воспроизведение звука после остановки /// </summary>
public static CuePlay(soundList sound)
{
Cue returnValue = soundbank.GetCue(cueNames[(int)sound]);
returnValue.Play();
return returnValue;
}
/// <summary>
/// Воспроизведение
/// </summary>
public static void PlayCue(soundList sound)
{
soundbank.PlayCue(cueNames[(int)sound]);
}
/// <summary>
/// Обновляем звук
/// </summary>
public static void Update()
{ }
engine.Update();
/// <summary>
/// Останавливаем воспроизведение /// </summary>
public static void Stop(Cue cue)
204 Звуковые эффекты
Класс Sound 205
{
cue.Stop(AudioStopOptions.Immediate);
}
} }
Ключевыми фигурами в звуковых проектах, основанных на использовании XACT, являются три класса: AudioEngine, SoundBank и WaveBank. Объявление и создание объектов этих классов, а также загрузка звука в игру всегда происходят в одном и том же ключе. Посмотрите на нижеприведенные строки исходного кода.
private static AudioEngine engine; private static SoundBank soundbank; private static WaveBank wavebank;
public static void Initialize()
{
engine = new AudioEngine("Content\\Sound\\Sound.xgs");
soundbank = new SoundBank(engine, "Content\\Sound\\Sound Bank.xsb");
wavebank = new WaveBank(engine, "Content\\Sound\\Wave Bank.xwb");
}
В трех первых строках этого блока кода происходит объявление трех объектов. Затем создание или инициализация объектов, в данном случае делается в методе Initialize(), но это можно сделать в любом месте на этапе загрузки игры. Создаются объекты всегда именно таким способом, как показано в коде. Это их специфика, или черный ящик, как хотите. Главное, что нужно четко понимать, -это какие пути прописывать в параметрах конструкторов классов AudioEngine, SoundBank и WaveBank.
Как вы помните, все звуковые файлы на основе проектных данных файла XACT (Sound.xap), добавленные в рабочий каталог проекта, в момент компиляции будут преобразованы к файлам под названиями Wave Bank.xwb, Sound Bank.xsb и Sound.xgs. И именно к этим файлам вам необходимо прописывать путь в параметрах конструкторах классов AudioEngine, SoundBank и WaveBank. Если у вас после компиляции появляются ошибки, связанные с тем, что программа не может найти файлы Wave Bank.xwb, Sound Bank.xsb и Sound.xgs, то вы указали неверно либо путь к файлам, либо названия самих файлов. В этом случае после компиляции откройте рабочий каталог проекта и посмотрите, где у вас точно располагаются эти файлы, какое название они имеют, и, что немаловажно, обратите внимание на расширение файлов, у всех файлов оно разное. Предыдущая Следующая
|