Хорошо, воспользовавшись этим вопросом, чтобы заставить звук MP3 работать (вроде), я узнал следующее (немного).
1) Аудио для сжатых форматов очень зависит от платформы. Моя постоянно обновляемая машина Mint 17.1-> 18 отлично воспроизводит mp3 с помощью Media и MediaPlayer. Свежие установки Mint 18 не будут (с инструментами разработчика).
Поэтому используйте файлы .wav.
Media sound=new Media(new File("noises/roll.wav").toURI().toString());
MediaPlayer mediaPlayer=new MediaPlayer(sound);
mediaPlayer.play();
2) Одна из вещей, которую вам нужно знать о Media/MediaPlayer, заключается в том, что для воспроизведения несколько раз (неоднократно или все сразу, т.е. при нажатии кнопки/что угодно в игре) вам нужно создать N количество MediaPlayer объекты, и каждый из них будет воспроизводиться один раз, а затем останавливаться.
Так что используйте javafx.scene.media.AudioClip
AudioClip soundMyNoise = new AudioClip(new File("noises/roll.wav").toURI().toString());
soundMyNoise.play();
У AudioClip также есть свои проблемы, в том числе хранение необработанных аудиоданных в ОЗУ сразу вместо буферизации. Таким образом, существует возможность чрезмерного использования памяти.
Независимо от того, какой метод вы выберете, одна вещь, о которой следует помнить, была упомянута ранее daevon — проблема пути. В NetBeans у вас есть NetBeansProjects/yourproject/src/yourproject/foo.java. Звуки в приведенном выше примере находятся в NetBeansProjects/yourproject/noises/roll.wav.
person
ivanivan
schedule
28.09.2016