Sound-Klasse um einen Vector ergänzen

Servus Miteinander,

ich habe hier einen Codeschnipsel, der eine Sounddatei läd und abspielt. So weit, so gut. Ich möchte diese Klasse nun mit einem Vector so erweitern, dass ich möglichst viele AudioClips hintereinander laden kann, denen einen Namen geben kann und schließlich mit Methoden Play und Stop diese auch unabhängig starten und stoppen kann. Wie würdet ihr da vorgehen?

Lieben Gruß

Richard

import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineEvent;
import javax.sound.sampled.LineListener;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;

/**

  • This is an example program that demonstrates how to play back an audio file
  • using the Clip in Java Sound API.
  • @author www.codejava.net

*/
public class AudioPlayerExample1 implements LineListener {

/**
 * this flag indicates whether the playback completes or not.
 */
boolean playCompleted;
 
/**
 * Play a given audio file.
 * @param audioFilePath Path of the audio file.
 */
void play(String audioFilePath) {
    File audioFile = new File(audioFilePath);

    try {
        AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile);

        AudioFormat format = audioStream.getFormat();

        DataLine.Info info = new DataLine.Info(Clip.class, format);

        Clip audioClip = (Clip) AudioSystem.getLine(info);

        audioClip.addLineListener(this);

        audioClip.open(audioStream);
         
        audioClip.start();
         
        while (!playCompleted) {
            // wait for the playback completes
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
         
        audioClip.close();
         
    } catch (UnsupportedAudioFileException ex) {
        System.out.println("The specified audio file is not supported.");
        ex.printStackTrace();
    } catch (LineUnavailableException ex) {
        System.out.println("Audio line for playing back is unavailable.");
        ex.printStackTrace();
    } catch (IOException ex) {
        System.out.println("Error playing the audio file.");
        ex.printStackTrace();
    }
     
}
 
/**
 * Listens to the START and STOP events of the audio line.
 */
@Override
public void update(LineEvent event) {
    LineEvent.Type type = event.getType();
     
    if (type == LineEvent.Type.START) {
        System.out.println("Playback started.");
         
    } else if (type == LineEvent.Type.STOP) {
        playCompleted = true;
        System.out.println("Playback completed.");
    }

}

public static void main(String[] args) {
    String audioFilePath = "./sound/brailleedge.wav";
    AudioPlayerExample1 player = new AudioPlayerExample1();
    player.play(audioFilePath);
}

}

ich würde erst mal das lesen … http://www.java-tutorial.org/vector.html und dann mein vorgehen planen.