在播放列表中处理/Java播放WAV

在播放列表中处理/Java播放WAV,java,arrays,processing,wav,Java,Arrays,Processing,Wav,我知道我以前也发布过类似的问题,但我似乎无法对其进行排序 我已经写了一个程序,打开一个WAV文件,循环它永远和显示一个可视化工具,这是罚款 我可以使用以下选项选择许多文件 chooser.setMultiSelectionEnabled(true); 然而,它只播放第一个WAV文件,并不断循环 我是Java新手,但我是否正确地认为所选WAV文件需要存储在一个数组中,并且需要单独调用?因为我最终想加载25个WAV文件,每个文件大约30秒长 选择文件的代码如下所示: JFileChooser ch

我知道我以前也发布过类似的问题,但我似乎无法对其进行排序

我已经写了一个程序,打开一个WAV文件,循环它永远和显示一个可视化工具,这是罚款

我可以使用以下选项选择许多文件

chooser.setMultiSelectionEnabled(true);
然而,它只播放第一个WAV文件,并不断循环

我是Java新手,但我是否正确地认为所选WAV文件需要存储在一个数组中,并且需要单独调用?因为我最终想加载25个WAV文件,每个文件大约30秒长

选择文件的代码如下所示:

JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(true);
chooser.setFileFilter(chooser.getAcceptAllFileFilter());
int returnVal = chooser.showOpenDialog(null);
minim = new Minim(this);
player = minim.loadFile(chooser.getSelectedFile().getAbsolutePath());
player.loop();
fft = new FFT(player.bufferSize(), player.sampleRate());
此外,单击顺序目前并不重要,因为所选文件将一个接一个地随机播放,直到永远。

您需要使用chooser.getSelectedFiles

然后在for循环中播放文件

现在,如果您想循环播放所有歌曲,那么您应该有一个上限,如下所示:

int loopTimes = 10;
while ( loopTimes > 0 )
{
   for ( File file : selectedFiles )
   {
      player = minim.loadFile( file.getAbsolutePath() );
      player.play();
   }

   loopTimes--;
}
我认为for Minim::AudioPlayer不支持多文件循环

int loopTimes = 10;
while ( loopTimes > 0 )
{
   for ( File file : selectedFiles )
   {
      player = minim.loadFile( file.getAbsolutePath() );
      player.play();
   }

   loopTimes--;
}