Устранить задержку между зацикливанием песен XNA?

8

Я делаю игру с XNA и пытаюсь заставить фоновую музыку правильно зацикливаться. Поскольку файл представляет собой MP3 длиной около 30 секунд, я создал его как Song. Я хочу, чтобы он идеально зацикливался, но даже когда я устанавливаю MediaPlayer.IsRepeatingсвойство в true, всегда есть задержка около одной секунды, прежде чем песня запускается снова. Есть ли способ устранить эту задержку, чтобы песня зацикливалась мгновенно, чтобы она могла воспроизводиться более плавно?

Стефан Бениак
источник

Ответы:

7

MediaPlayer в XNA всегда имел небольшую задержку при зацикливании песен, и я не нашел способа решить эту проблему. Какая у вас целевая платформа? Вы можете рассмотреть возможность использования XACT, если вы нацелены на Xbox или Windows, поскольку у него нет тех же проблем, что и у MediaPlayer API.

Я бы рекомендовал не использовать SoundEffect (в соответствии с рекомендациями Sprunth) для воспроизведения фоновой музыки, если вы собираетесь выпустить его на XBLIG или на рынке WP7, поскольку это плохо сочетается со встроенным медиаплеером и приводит к проблемам с сертификацией / экспертной проверкой , Например, если вы воспроизводите свою фоновую музыку как SoundEffect на Xbox, и игрок хочет использовать свою собственную звуковую дорожку, ваша музыка все равно будет воспроизводиться поверх, тогда как, если вы использовали песню в соответствии с рекомендациями, она «волшебным образом» остановится. Подобные плохие вещи случаются по телефону.

игры dadoo
источник
4
Спасибо за разъяснение, почему Songздесь правильный выбор.
Стефан Бениак
+1 За XACT. Вы должны импортировать музыку и звуковые эффекты в виде несжатых файлов WAV и позволить XACT сжимать их и упаковывать в волновые блоки.
Майкл Бартнетт
4

Я сделал быстрое приложение xna с ~ 15 секундным mp3 и могу подтвердить, что MediaPlayer действительно имеет эту проблему при зацикливании. Я попробовал это снова с SoundEffect (и SoundEffectInstance для зацикливания в XNA4), и проблема исчезла. Думаю, вы могли бы перейти на SoundEffect?

Некоторые исследования / источники: зацикливание музыки с помощью проблемы MediaPlayer Способы устранения задержки задержки при зацикливании MP3 в XNA 3.0

Sprunth
источник