Wiedergabe von Audiodateien in Java: Eine umfassende Lösung für die Unterstützung von .mp3 und .wav
Bei der Arbeit mit der Audiowiedergabe in Java-Anwendungen, Handhabung Verschiedene Audioformate wie .mp3 und .wav können eine Herausforderung sein. Dieser Artikel bietet eine umfassende Lösung, die die Stärken der java.sound-API und von JavaFX kombiniert, um beide Arten von Audiodateien problemlos abzuspielen.
Java Sound API: Ein Fokus auf .wav-Dateien
Die java.sound API ist eine leistungsstarke Bibliothek für die Audioverarbeitung und -wiedergabe. Es unterstützt jedoch nativ nur WAV-Dateien. Das bereitgestellte Code-Snippet veranschaulicht diese Einschränkung:
public void playSound() { try { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/MusicPlayer/fml.mp3").getAbsoluteFile()); Clip clip = AudioSystem.getClip(); clip.open(audioInputStream); clip.start(); } catch(Exception ex) { System.out.println("Error with playing sound."); ex.printStackTrace(); } }
Einführung in JavaFX: Die Antwort für .mp3-Unterstützung
JavaFX, eine moderne Java-Bibliothek, löst dieses Problem. Es stellt die Klassen Media und MediaPlayer bereit, die speziell für die Wiedergabe von Audio- und Videoinhalten entwickelt wurden. Diese Klassen unterstützen verschiedene Audioformate, einschließlich .mp3.
MP3-Dateien mit JavaFX abspielen
Der folgende Code zeigt, wie eine .mp3-Datei mit JavaFX abgespielt wird:
String bip = "bip.mp3"; Media hit = new Media(new File(bip).toURI().toString()); MediaPlayer mediaPlayer = new MediaPlayer(hit); mediaPlayer.play();
Vergessen Sie nicht, diese Importe einzubeziehen Aussagen:
import java.io.File; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer;
Ein einheitlicher Ansatz: MP3- und WAV-Dateien abspielen
Hier ist der Trick, um sowohl MP3- als auch WAV-Dateien mit einer einzigen Methode abzuspielen :
public void playAudio(String filePath) { if (filePath.endsWith(".mp3")) { // Use the JavaFX approach Media hit = new Media(new File(filePath).toURI().toString()); MediaPlayer mediaPlayer = new MediaPlayer(hit); mediaPlayer.play(); } else if (filePath.endsWith(".wav")) { // Use the java.sound approach try { AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(filePath).getAbsoluteFile()); Clip clip = AudioSystem.getClip(); clip.open(audioInputStream); clip.start(); } catch(Exception ex) { System.out.println("Error with playing sound."); ex.printStackTrace(); } } }
Diese Methode kombiniert die Fähigkeiten von JavaFX und java.sound, um sowohl .mp3 als auch zu verarbeiten .wav-Dateien mühelos erstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich sowohl .mp3- als auch .wav-Audiodateien in Java abspielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!