我的代码工作正常,直到我增加了歌曲的数量。 我有200首歌曲,但当我放入200多首歌时,我注意到我收到了IOException setDataSource FD失败。
现在经过一些额外的测试后我发现这个错误之前的限制是334首歌,这很奇怪。我不明白为什么它与< 334并且在334首歌曲之后它会崩溃。
你能帮帮我吗? 我的代码很简单,这是部分。ArrayList<MediaPlayer> mPlayerList = new ArrayList<MediaPlayer>();
FileDescriptor fd = null;
try {
for (String fileName : fileList)
{
MediaPlayer mPlayerT = new MediaPlayer();
FileInputStream fis = new FileInputStream(fileName);
fd = fis.getFD();
//mPlayerT.setDataSource(getApplicationContext(), myUri1);
mPlayerT.setDataSource(fd);
mPlayerT.prepare();
mPlayerT.setVolume(1f, 1f);
mPlayerT.setLooping(false);
mPlayerList.add(mPlayerT);
}
for (int i=0; i<mPlayerList.size()-1; i++) //Do not include last element
{
mPlayerList.get(i).setNextMediaPlayer(mPlayerList.get(i+1));
}
mPlayerList.get(0).start();
} catch (IOException e) {
e.printStackTrace();
}
为了预测您的答案,这些文件不会从下载中删除或损坏。我也将它们从.mp3转换为.ogg,以确保一切正常。当我收到有关文件的数据源失败时,如果我减少了它正常工作的歌曲数量而没有删除特定文件。所以,文件的格式还可以。
提前致谢。