Éliminer le délai entre les chansons XNA en boucle?

8

Je fais un jeu avec XNA et j'essaye d'obtenir une musique de fond pour boucler correctement. Parce que le fichier est un MP3 d'environ 30 secondes, je l'ai instancié comme Song. Je veux qu'il boucle parfaitement, mais même lorsque je définis la MediaPlayer.IsRepeatingpropriété true, il y a toujours un délai d'environ une seconde avant que le morceau ne redémarre. Existe-t-il un moyen d'éliminer ce retard de telle sorte que le morceau boucle instantanément, afin qu'il puisse jouer plus couramment?

Stéphane Beniak
la source

Réponses:

7

Le MediaPlayer dans XNA a toujours eu un court délai lors de la boucle de chansons et je n'ai vu aucun moyen de résoudre le problème. Quelle est votre plateforme cible? Vous pouvez envisager d'utiliser XACT si vous ciblez la Xbox ou Windows car il n'a pas les mêmes problèmes que l'API MediaPlayer.

Je déconseille d'utiliser SoundEffect (comme recommandé par Sprunth) pour lire de la musique de fond si vous prévoyez de sortir sur XBLIG ou sur le marché WP7, car cela ne correspond pas bien au lecteur multimédia intégré et entraîne des problèmes de certification / révision par les pairs . Par exemple, si vous jouez votre musique de fond en tant que SoundEffect sur la Xbox et qu'un joueur souhaite utiliser sa propre bande sonore personnalisée, votre musique continuera de jouer par dessus, tandis que si vous aviez utilisé un morceau comme recommandé, il s'arrêterait "comme par magie". De mauvaises choses similaires se produisent au téléphone.

Jeux de papa
la source
4
Merci d'avoir clarifié pourquoi Songest le bon choix ici.
Stephane Beniak
+1 pour XACT. Vous devez importer votre musique et vos effets sonores sous forme de fichiers WAV non compressés et permettre à XACT de les compresser et de les compresser dans des banques de vagues.
michael.bartnett
4

J'ai créé une application xna rapide avec un mp3 ~ 15 secondes et je peux confirmer que MediaPlayer a ce problème lors de la boucle. Je l'ai essayé à nouveau avec SoundEffect (et SoundEffectInstance pour boucler dans XNA4) et le problème a disparu. Donc je suppose que vous pouvez passer à SoundEffect?

Quelques recherches / sources: Boucler la musique en utilisant le problème MediaPlayer Façons de corriger l'écart de retard lors de la boucle des MP3 dans XNA 3.0

Sprunth
la source