Android Media Player设置数据源FD失败

时间:2015-03-02 15:27:01

标签: android android-mediaplayer

我的代码工作正常,直到我增加了歌曲的数量。 我有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,以确保一切正常。当我收到有关文件的数据源失败时,如果我减少了它正常工作的歌曲数量而没有删除特定文件。所以,文件的格式还可以。

提前致谢。

0 个答案:

没有答案