尽管数组索引在范围内,但仍抛出ArrayIndexOutOfBoundsException

时间:2019-01-27 15:23:04

标签: audio processing

好的, 当使用for加载一堆歌曲时,首先出现此错误,我在一个单独的数组中列出了这些歌曲的标题,如下所示。 值得注意的是,我已经在过时的声音库版本中运行了此草图,并且同一行给了我一个错误,例如“在65536个字节的垃圾之后放弃寻找有效的MPEG标头”。如果我只加载一首歌曲,则不会显示该错误。不仅如此,而且确实如此。 但是,现在我更新了声音库,它给了我ArrayIndexOutOfBounds异常:3。 这不仅很奇怪,因为在数组中我使用的最大索引应为7(因为其长度为8),而且还因为我使用了ArrayIndex1。请参见下文。

我尝试消除(或至少隔离)该错误的尝试可以在下面的代码中看到。 如果有什么用,我正在使用Processing 3.5,Sound库的最新更新和OS X 10.9.5(省事)。


String[] titles={"Small Bump", "This", "I See Fire", "The City ", "The City", "Cake By The Ocean", "Never Gonna Give You Up", "Innamoratissimo"};
SoundFile[] songs= new SoundFile[titles.length];
int i=0;  
void setup(){  
  //for (int i=0; i<songs.length; i++) songs[i]=new SoundFile(this,titles[i]+".mp3");
  //This one gave me a fault
  //for (int i=0; i<1; i++) songs[i]=new SoundFile(this,titles[i]+".mp3");
  //This one ran ok
  //for (int i=0; i<2; i++) songs[i]=new SoundFile(this,titles[i]+".mp3");
  //This one threw a fit again
  //So I decided to list them manually to make sure the for wasn't doing funky stuff
  songs[0]=new SoundFile(this,"Small Bump.mp3");
  songs[1]=new SoundFile(this,"This.mp3");  //This is the line causing mayhem. See how the ArrayIndex is neither out of bounds nor 3?
}

0 个答案:

没有答案