Java MediaPlaye Проблема: Песня не воспроизводится при нажатии кнопки - PullRequest
0 голосов
/ 27 октября 2019

Я разрабатываю программу, которая по сути функционирует как музыкальный проигрыватель. Он отлично работает в Eclipse, но при экспорте ни одна из созданных кнопок не воспроизводит музыку, как задумано.

Чтобы исследовать это, я разработал новую кнопку, которая будет вызывать тестовый метод, который получает случайную песню из указанного каталога, воспроизводит эту песню и возвращает строку «cat». Затем я вставил оператор if ниже строки, где я вызвал метод, чтобы увидеть, было ли присвоено значение «cat». В случае успеха кнопка поменяет цвет на красный. Это позволило бы мне увидеть, был ли завершен тестовый метод, независимо от того, играла ли музыка. ПРИМЕЧАНИЕ: multiPlayer - это экземпляр класса MediaPlayer, который я разработал.

ActionEventListener для тестовой кнопки :

    button.addActionListener(new ActionListener()
    {
        @Override
        public void actionPerformed(ActionEvent e)
        {
        String x = multiPlayer.testThis();
        if(x.equals("cat")) {
            button.setBackground(Color.RED);
            }
        }
        });

Метод вызывается выбором кнопки :

public String testThis()
{
    JFXPanel fxPanel = new JFXPanel();
    File file = getRandomSong();
    Media hit = new Media(file.toURI().toString());
    mediaPlayer = new MediaPlayer(hit);
    mediaPlayer.play();
    return "cat";
}

Затем я пошелстрока за строкой тестового метода, комментируя строки, чтобы увидеть, где метод терпит неудачу при экспорте. Я обнаружил, что источником проблемы является строка, где я создаю новую JFXPanel. Например, если я запускаю метод getRandomSong, кнопка просто меняет цвет;однако, если я добавлю новую строку JFXPanel (), кнопка не сможет изменить цвет, что свидетельствует о том, что метод не работает.

Может кто-нибудь дать мне совет по этому поводу? Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...