Я довольно новичок в JavaFX и недавно хотел воспроизвести аудио с файлом MP3, а не с WAV. Из того, что я могу сказать, я делаю все правильно, и я не получаю никаких ошибок, но я также не слышу никакого звука.Звук JavaFX, кажется, не играет
Я выложу части моего кода, которые имеют значение ниже. Если я что-то пропустил, дайте мне знать. Благодарю.
try {
URL sound = getClass().getResource("/resources/origin.mp3");
Media hit = new Media(sound.toExternalForm());
musicPlayer = new MediaPlayer(hit);
musicPlayer.setVolume(1.0);
}
catch(Exception e) {
System.out.println("whoops: " + e);
}
checkMusic();
Метод проверки Музыка:
public void checkMusic() {
if(music)
musicPlayer.setAutoPlay(true);
else
musicPlayer.stop();
}
Я также попытался просто musicPlayer.play();
, а также.
EDIT
И да, я уверен, что код в прогонах if
заявления, я проверил его с println
, и они распечатать. music
boolean - это просто контроллер для настроек в программе/игре.
Если исполнение в '' checkMusic' хиты musicPlayer.setAutoPlay (истинный), 'это должно быть в порядке. Вы уверены, что у вас нет никаких «криков: ..» в консоли? Просто потому, что если вы используете ведущую косую черту («/») при использовании getResource, она будет использовать корень проекта как базу. Как класс вызова и ресурс MP3 помещаются в структуру каталогов? – DVarga
Это определенно выполняется, потому что я проверил с 'println'. И каталог должен быть в порядке, потому что он работал, когда я использовал WAV-файл. Он находится в папке bin, затем в папке, называемой ресурсами, и другими вещами. И насколько я могу судить, в консоли нет «криков», потому что я уже справлялся с большинством проблем. (И, поверьте мне, было несколько из-за того, что я новый для JavaFX lol) – Ryan
@DVarga ой, а также я мог что-то найти. Когда я делаю 'System.out.println (hit.getDuration();' он говорит неизвестно, а 'getTracks()' также неизвестен. Может ли это что-нибудь значить? – Ryan