В Java, как остановить предыдущий аудиофайл, когда другой аудиофайл начинает использовать key_events

Я знаю о методе clip.stop (), но он не работает внутри, когда он у меня внутри key_events. Это просто вызывает ошибку. Ну, я знаю, почему это вызывает ошибку. Потому что я прошу его, по сути, остановить клип, который не существует до нескольких строк спустя. Но используя ту же логику или близкую к ней, если это возможно, как я могу перекодировать ее, чтобы она знала, чтобы выбрать предыдущий клип, который воспроизводился из предыдущего key_event. Функциональность, для которой я намереваюсь: при нажатии F1 проигрывается wav. Когда нажата клавиша F2, текущий wav останавливается, новый wav начинается. Когда нажата клавиша F3, текущий wav останавливается, новый wav начинается. И т. Д. И т. Д.

            case KeyEvent.VK_F1:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;


            case KeyEvent.VK_F2:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename2));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;

            case KeyEvent.VK_F3:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename3));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;

            case KeyEvent.VK_F4:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename4));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;

            case KeyEvent.VK_F5:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename5));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;

            case KeyEvent.VK_F6:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename6));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;

            case KeyEvent.VK_F7:

                try {

                    //stop any sound
                    clip.stop();

                    sample = AudioSystem.getAudioInputStream(getURL(filename7));

                    //create a sound buffer
                    Clip clip = AudioSystem.getClip();

                    //load the audio file
                    clip.open(sample);

                    //play sample
                    clip.start();

                } catch (MalformedURLException ez) {
                } catch (IOException ez) {
                } catch (LineUnavailableException ez) {
                } catch (UnsupportedAudioFileException ez) {
                } catch (Exception ez) { }

                break;

Любая помощь будет принята с благодарностью :) Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос