XNAを使用してゲームを作成し、バックグラウンドミュージックを正しくループさせようとしています。ファイルは約30秒の長さのMP3なので、としてインスタンス化しましたSong
。完全にループさせたいのですが、MediaPlayer.IsRepeating
プロパティをに設定してもtrue
、曲が再び始まるまでに常に約1秒の遅延があります。曲が瞬時にループするようにこの遅延を解消して、より滑らかに再生できる方法はありますか?
XNAを使用してゲームを作成し、バックグラウンドミュージックを正しくループさせようとしています。ファイルは約30秒の長さのMP3なので、としてインスタンス化しましたSong
。完全にループさせたいのですが、MediaPlayer.IsRepeating
プロパティをに設定してもtrue
、曲が再び始まるまでに常に約1秒の遅延があります。曲が瞬時にループするようにこの遅延を解消して、より滑らかに再生できる方法はありますか?
回答:
XNAのMediaPlayerは、曲をループするときに常に短い遅延があり、問題を解決する方法は見ていません。ターゲットプラットフォームは何ですか?XboxまたはWindowsを対象としている場合は、MediaPlayer APIと同じ問題がないため、XACTの使用を検討できます。
XBLIGまたはWP7マーケットプレイスでリリースする場合、組み込みのメディアプレーヤーとうまく適合せず、認定/ピアレビューの問題につながるため、SoundEffect(Sprunthで推奨)を使用してバックグラウンドミュージックを再生しないことをお勧めします。 。たとえば、XboxでバックグラウンドミュージックをSoundEffectとして再生し、プレーヤーが独自のカスタムサウンドトラックを使用したい場合でも、音楽は引き続きトップで再生されますが、ソングを推奨どおりに使用した場合、「魔法のように」停止します。電話でも同様の悪いことが起こります。
約15秒のmp3で簡単なxnaアプリを作成しましたが、ループ時にMediaPlayerにこの問題があることを確認できます。SoundEffect(およびXNA4でループするためのSoundEffectInstance)でもう一度試したところ、問題は解決しました。では、SoundEffectに切り替えられると思いますか?
いくつかの調査/情報源: MediaPlayer問題を使用して音楽を ループするXNA 3.0でMP3をループするときの遅延ギャップを修正する方法
Song
ここで適切な選択である理由を明確にしていただきありがとうございます。