Пожалуйста ... не размещайте изображения своего кода.Обидно думать, что кто-то захочет на самом деле напечатать ваш код, чтобы протестировать его, тогда как будет гораздо проще просто скопировать / вставить его.В любом случае ...
Вы получаете окно сообщения, которое просто отображает Error
, потому что это то, что ваш код должен отображать при возникновении ошибки.Я должен сказать .... это не очень информативное описание того, что может быть ошибка, что довольно печально.Сделайте себе одолжение, и вместо того, чтобы просто «Ошибка» в диалоговом окне окна сообщений JOptionPane, попробуйте разместить (как минимум) e.getMessage () , который даст более точное указаниепроблемы, например:
JOptionPane.showMessageDialog(null, e.getMessage());
Не имеет значения, если вы новичок в программировании на Java, если вы собираетесь приступить к задаче по написанию кода для воспроизведения файлов MP3, тогда вам следуетпо крайней мере, научиться справляться с исключениями (ошибками).Эти исключения действительно помогают вам достичь успеха в вашем проекте, поэтому их детальное получение и принятие мер по исправлению представленных проблем гарантируют беспроблемное взаимодействие с пользователем.
Теперь, если вы сделали то, что было задано, и изменили свойЗатем JOptionPane запустит ваше приложение, и вы, скорее всего, получите сообщение, похожее на это:
Could not create Audio Stream from Input Stream.
Ну ... это немного более информативно в отношении проблемы, которая заключается в том, что AudioStream не поддерживает файлы MP3...bummer.WAV файлы да, но MP3 файлы НЕТ.Однако не стоит отказываться, поскольку есть альтернативы:
- Конвертируйте файлы MP3 в формат WAV, с которым AudioStream может работать.Вероятно, вы можете сделать это онлайн в Media IO ;
- Использовать JavaFX и класс javafx.scene.media.MediaPlayer .Вы можете найти пример здесь ;
- Используйте стороннюю библиотеку, такую как JLayer от JavaZOOM, которая делает эту задачу чрезвычайно простой и работает довольно хорошо.Да, он старый, но все еще работает.Доступно несколько сторонних библиотек, чтобы ваше приложение Java могло воспроизводить аудиофайлы MP3, просто найдите их в Google.
Использование JLayer для воспроизведения аудиофайлов MP3 в 8 простых шагов:
Нет ... это не плагин для JLayer.Есть лотов примеров, доступных, чтобы показать вам, как использовать библиотеку JLayer, но я быстро покажу вам, как вы можете выполнить эту задачу:
- Сначала загрузите JLayer zip архив.Вы можете получить последнюю версию здесь и распаковать ее;
- Теперь скопируйте и вставьте файл библиотеки
jl1.0.1.jar
(расположенный в корневом каталоге распакованного архива) в безопасное место.Где бы вы ни хранили все свои сторонние библиотеки Java; - Запустите новый проект приложения Java в вашей конкретной Java IDE и назовите его PlayMP3;
- Добавьте новый класс, который будет содержать метод main ()вам проект, а также назовите его PlayMP3.Среда IDE NetBeans делает это автоматически, когда вы создаете проект Java-приложения с помощью мастера создания проекта, и опция Создать основной класс отмечена;
- Применить библиотеку
jl1.0.1.jar
к вашему проекту вваша Java IDE.Для этого используйте любой метод, требуемый вашей конкретной IDE; Скопируйте / вставьте следующие импорты в ваш новый класс PlayMP3:
import java.io.FileInputStream;
import java.io.IOException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;
Копировать /Вставьте следующий код в новый класс PlayMP3 main () метод:
try {
// Try With resources used here to auto close the FileInputStream
try (FileInputStream fis = new FileInputStream("C:\\PathTo\\YourSong.mp3")) {
Player player = new Player(fis);
System.out.println("YourSong.mp3 is now Playing....");
player.play();
System.out.println("YourSong.mp3 is now FINISHED Playing!");
}
catch (IOException ex) {
ex.printStackTrace();
}
}
catch (JavaLayerException ex) {
ex.printStackTrace();
}
- Убедитесь, что громкость увеличена.Запустите приложение проекта.Подождите секунду или две, пока ваша песня будет записана. Наслаждайтесь.
В качестве примечания, ваше воспроизведение MP3 должно быть выполнено в его собственном потоке, чтобы не связывать EDT (Поток отправки событий)) в противном случае код вашего приложения не будет продолжаться после вызова метода play (), по крайней мере, до тех пор, пока песня не закончится.