1

私は XNA にかなり慣れていないので、しばらくの間、この問題を理解しようとしてきました.言うまでもなく、できませんでした (したがって、質問!!)

XNA を使用してオーディオをいじろうとしてきましたが、うまく機能しているようです。ただし、再生しようとしているすべての音楽ファイルは MP3 形式ですが、再生できない曲もいくつかあります。

私が行った簡単なテストの結果は次のとおりです(「SongB」が再生されない曲であると仮定)

  • MediaPlayer.Play(SongA) --> 動作します
  • MediaPlayer.Play(SongB) --> 無音
  • MediaPlayer.Play(SongC) --> 動作します

曲をリストしたリストがあり、「next()」が呼び出されたときに次の曲を再生するプログラムがあるとします。

int playingIdx = 0;

SongList[0] = SongA;
SongList[1] = SongB;
SongList[2] = SongC;

void next()
{
    PlayingIdx++;
    MediaPlayer.Play(SongList[PlayingIdx]);
}

その後、PlayingIdx = 1 の場合、SongB はスキップされ、プログラムは SongC を再生します。誰かが似たようなことに遭遇しましたか?または、XNA で再生できる特定の種類の MP3 はありますか?

4

1 に答える 1

1

私の推測では、XNA プレーヤーは、ほとんどのオーディオ プレーヤーよりもフォーマットの不一致に敏感すぎるようです。問題の原因となっている曲をデコードしてから再エンコードしてみてください。このタスクでは、たとえば次のようにLAMEを使用できます。

lame --mp3input --strictly-enforce-ISO song.mp3 fixed_song.mp3

それ以外は、問題がないことを確認するためだけに曲の順序を並べ替えようとします。

于 2012-08-14T05:05:22.900 に答える