2017-04-04 4 views
0

Je sais que j'ai déjà posté une question similaire mais je n'arrive pas à la trier.Processing/Java joue WAV dans une playlist

J'ai écrit un programme qui ouvre un fichier WAV, le boucle pour toujours et affiche un visualiseur, ce qui est bien.

Je peux sélectionner plusieurs fichiers avec les éléments suivants

chooser.setMultiSelectionEnabled(true); 

Cependant, il ne joue que le premier fichier WAV et maintient en boucle qui.

Je suis nouveau à Java mais ai-je raison de penser que les fichiers WAV sélectionnés doivent être stockés dans un tableau et doivent être appelés séparément? Comme je voudrais éventuellement charger 25 fichiers WAV environ 30 secondes chacun)

Le code pour le choix des fichiers est ci-dessous:

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()); 

En outre, cliquez sur ordre n'a pas d'importance au moment que les fichiers sélectionnés sera joué au hasard l'un après l'autre, pour toujours.

Répondre

1

Vous devez utiliser chooser.getSelectedFiles();

File[] selectedFiles = chooser.getSelectedFiles(); 

puis à l'intérieur d'une boucle pour jouer les fichiers.

Maintenant, si vous voulez faire une boucle sur toutes les chansons, alors vous devriez avoir un tout en haut comme ci-dessous:

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

    loopTimes--; 
} 

Je ne pense pas que API pour Minim::AudioPlayer prend en charge loop() pour plusieurs fichiers.