C# Microsoft XNA MediaPlayer.Play(歌曲)不播放某些歌曲

C# Microsoft XNA MediaPlayer.Play(歌曲)不播放某些歌曲,c#,xna,C#,Xna,我对XNA很陌生,我一直在努力解决这个问题。。不用说,我不能(这就是问题所在!!) 我一直在尝试使用XNA处理音频,它似乎工作得很好。然而,有一些歌曲无法播放,尽管我尝试播放的所有音乐文件都是MP3格式 我做的简单测试的结果如下(假设“SongB”是不播放的歌曲) MediaPlayer.Play(SongA)-->有效 MediaPlayer.Play(歌曲B)-->没有声音 MediaPlayer.Play(SongC)-->有效 如果我有一个列表,其中列出了歌曲,并且有一个程序在调用“

我对XNA很陌生,我一直在努力解决这个问题。。不用说,我不能(这就是问题所在!!)

我一直在尝试使用XNA处理音频,它似乎工作得很好。然而,有一些歌曲无法播放,尽管我尝试播放的所有音乐文件都是MP3格式

我做的简单测试的结果如下(假设“SongB”是不播放的歌曲)

  • MediaPlayer.Play(SongA)-->有效
  • MediaPlayer.Play(歌曲B)-->没有声音
  • 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吗?

我的猜测是XNA播放器比大多数音频播放器对某些格式不一致太敏感。尝试解码并重新编码导致问题的歌曲。对于此任务,您可以使用,例如:

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

除此之外,我会尝试重新安排歌曲的顺序,以确认这并不重要。

我的猜测是,XNA播放器与大多数音频播放器相比,对某些格式不一致的问题过于敏感。尝试解码并重新编码导致问题的歌曲。对于此任务,您可以使用,例如:

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

除此之外,您还可以尝试重新排列歌曲的顺序,以确认这并不重要。

我猜您没有收到任何错误,并且您确定其他应用程序可以播放该文件?您确定playingidx的值正确吗?请注意,如果MediaPlayer尚未播放完最后一首歌曲,下一首歌不会播放。playingIdx和next()示例就是我注意到的。我写了一个快速程序,在那里我可以搜索一首歌并播放它。虽然我的Windows Media Player可以播放一些歌曲(我也可以将它们流式传输到我的xbox来播放),但有一些歌曲我一直无法播放,这就是我的问题所在。为了澄清playingIdx问题,代码段:
MediaPlayer.play(SongsList[1])
和代码段
MediaPlayer.play(SongsList[2])
两者都会导致播放SongCI我猜您没有收到任何错误,并且您确定其他应用程序可以播放该文件?您确定playingidx的值正确吗?请注意,如果MediaPlayer没有播放完最后一首歌,下一首歌将不会播放。playingidx和next()示例正是我注意到的。我写了一个快速程序,在那里我可以搜索一首歌并播放它。虽然我的Windows Media Player可以播放一些歌曲(我也可以将它们流式传输到我的xbox来播放),但有一些歌曲我一直无法播放,这就是我的问题所在。为了澄清playingIdx问题,代码段:
MediaPlayer.play(SongsList[1])
和代码段
MediaPlayer.play(SongsList[2])
两者都会导致播放SongC