Eliminar o atraso entre repetir músicas XNA?


8

Estou fazendo um jogo com o XNA e tentando fazer com que algumas músicas de fundo fiquem em loop corretamente. Como o arquivo é um MP3 com cerca de 30 segundos de duração, instalei-o como a Song. Quero que ele faça um loop perfeitamente, mas mesmo quando defino a MediaPlayer.IsRepeatingpropriedade true, sempre há um atraso de cerca de um segundo antes que a música comece novamente. Existe alguma maneira de eliminar esse atraso, de modo que a música faça um loop instantaneamente, para que seja reproduzida com mais fluência?

Respostas:


7

O MediaPlayer no XNA sempre teve um pequeno atraso ao repetir músicas e não vi nenhuma maneira de resolver o problema. Qual é a sua plataforma de destino? Você pode considerar usar o XACT se estiver direcionando o Xbox ou o Windows, pois ele não tem os mesmos problemas que a API do MediaPlayer.

Eu recomendaria não usar o SoundEffect (como recomendado pela Sprunth) para tocar música de fundo se você for lançar no mercado XBLIG ou WP7, pois isso não combina bem com o media player embutido e leva a problemas de certificação / revisão por pares . Por exemplo, se você tocar sua música de fundo como um SoundEffect no Xbox e um jogador quiser usar sua própria trilha sonora personalizada, sua música continuará sendo reproduzida, enquanto que se você tivesse usado uma música como recomendada, ela pararia "magicamente". Coisas ruins semelhantes acontecem no telefone.


4
Obrigado por esclarecer por que Songé a escolha correta aqui.
Stephane Beniak

+1 para XACT. Você deve importar suas músicas e efeitos sonoros como arquivos WAV descompactados e permitir que o XACT os comprima e os empacote em bancos de ondas.
michael.bartnett

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.