好的, 当使用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?
}