Hapus penundaan antara pengulangan lagu XNA?

8

Saya membuat game dengan XNA dan mencoba mendapatkan musik latar belakang untuk diulang dengan benar. Karena file tersebut adalah MP3 dengan panjang sekitar 30 detik, saya instantiated sebagai file Song. Saya ingin loop sempurna, tetapi bahkan ketika saya mengatur MediaPlayer.IsRepeatingproperti true, selalu ada penundaan sekitar satu detik sebelum lagu dimulai kembali. Apakah ada cara untuk menghilangkan penundaan ini sehingga lagunya berputar secara instan, sehingga dapat diputar lebih lancar?

Stephane Beniak
sumber

Jawaban:

7

MediaPlayer di XNA selalu mengalami penundaan singkat saat memutar lagu dan saya belum melihat cara untuk menyelesaikan masalah ini. Apa platform target Anda? Anda dapat mempertimbangkan menggunakan XACT jika Anda menargetkan Xbox atau Windows karena tidak memiliki masalah yang sama dengan API MediaPlayer.

Saya akan merekomendasikan untuk tidak menggunakan SoundEffect (seperti yang direkomendasikan oleh Sprunth) untuk memutar musik latar jika Anda akan merilis di XBLIG atau pasar WP7 karena itu tidak cocok dengan pemutar media bawaan dan mengarah ke masalah sertifikasi / tinjauan sejawat . Misalnya, jika Anda memutar musik latar belakang sebagai Efek Suara di Xbox dan seorang pemain ingin menggunakan soundtrack kustom mereka sendiri, musik Anda akan tetap diputar di atas, sedangkan jika Anda menggunakan Lagu sesuai anjuran, "secara ajaib" akan berhenti. Hal-hal buruk yang serupa terjadi di telepon.

Permainan dadoo
sumber
4
Terima kasih telah menjelaskan mengapa Songpilihan yang tepat di sini.
Stephane Beniak
+1 Untuk XACT. Anda harus mengimpor musik dan efek suara Anda sebagai file WAV yang tidak terkompresi dan memungkinkan XACT untuk mengompresnya dan mengemasnya ke dalam wavebank.
michael.bartnett
4

Saya membuat aplikasi xna cepat dengan mp3 ~ 15 detik dan dapat mengonfirmasi bahwa MediaPlayer memang memiliki masalah ini saat pengulangan. Saya mencobanya lagi dengan SoundEffect (dan SoundEffectInstance untuk perulangan di XNA4) dan masalah itu hilang. Jadi saya kira Anda bisa beralih ke SoundEffect?

Beberapa penelitian / sumber: Looping musik menggunakan masalah MediaPlayer Cara memperbaiki jeda penundaan saat memutar MP3 di XNA 3.0

Sprunth
sumber