У меня есть два звуковых файла:Looping музыка с интро в XNA с использованием Soundeffect
- Звук А является 18 второй интро предназначены для воспроизведения один раз
- Sound B является 1 минута перекручивание трек
Я хотел бы воспроизвести Звук A один раз, затем, как только звук A будет выполнен, немедленно воспроизведите Звук B и продолжайте циклический звук B до тех пор, пока я не остановлю его. Предполагается, что это будет циклическая городская музыка в RPG.
Я пробовал делать это в коде, используя только SoundEffect, но есть крошечный, но заметный промежуток между концом звука A и началом звука B. Даже если я поставлю контрольный код, наблюдая за SoundEffectInstance.State Sound A в Функция Update(), я не смог запустить Sound B точно, когда Sound A заканчивается так, чтобы он был бесшовным.
Я бы предпочел использовать SoundEffect, потому что я могу загружать файлы WMA, а не застревать с WAV в XACT.
Пробовал, но безрезультатно. Звучит точно так же. Для записи я загружаю и создаю одновременно SoundEffectInstances, в LoadContent(). Не думайте, что проблема связана с загрузкой ресурсов. Вначале я получил дополнительный шум, но я смог остановить это, установив том SoundEffectInstance на 0, прежде чем я нажму Play(). Плюс, оказывается, что мои WMA превращаются в WAV от импортера контента SoundEffect от XNA. Argh. Я не в состоянии решить эту проблему.Я пытаюсь создать RPG, но у меня не может быть 1 ГБ музыки, потому что это все в формате WAV. –
О, ну, эта конкретная проблема на самом деле не проблема :-) см. «Сжатие звука в Xact» http://blogs.msdn.com/mitchw/archive/2007/04/27/audio-compression-using-xact .aspx –
Лучшее решение, которое я мог бы найти: создать один звуковой банк. Перетащите оба WAV из Волнового банка в тот звуковой банк. Каждый из них должен быть отдельной дорожкой. Циклической дорожкой должен быть трек 2. Выберите его на уровне Play Wave, проверьте бесконечный цикл и (в решающей степени) установите его метку времени как точную длину входящей части. Вы можете указать до трех знаков после запятой. Я использовал программу Audacity, чтобы получить точную длину интро-песни. О, и следуйте ссылке сжатия Джоэля. Это уменьшит размер вашего WAV-файла на 3/4. –