Playing .mp3 and .wav in Java?

前端 未结 14 2105
一整个雨季
一整个雨季 2020-11-22 06:52

How can I play an .mp3 and a .wav file in my Java application? I am using Swing. I tried looking on the internet, for something like this example:<

相关标签:
14条回答
  • 2020-11-22 07:34

    I would recommend using the BasicPlayerAPI. It's open source, very simple and it doesn't require JavaFX. http://www.javazoom.net/jlgui/api.html

    After downloading and extracting the zip-file one should add the following jar-files to the build path of the project:

    • basicplayer3.0.jar
    • all the jars from the lib directory (inside BasicPlayer3.0)

    Here is a minimalistic usage example:

    String songName = "HungryKidsofHungary-ScatteredDiamonds.mp3";
    String pathToMp3 = System.getProperty("user.dir") +"/"+ songName;
    BasicPlayer player = new BasicPlayer();
    try {
        player.open(new URL("file:///" + pathToMp3));
        player.play();
    } catch (BasicPlayerException | MalformedURLException e) {
        e.printStackTrace();
    }
    

    Required imports:

    import java.net.MalformedURLException;
    import java.net.URL;
    import javazoom.jlgui.basicplayer.BasicPlayer;
    import javazoom.jlgui.basicplayer.BasicPlayerException;
    

    That's all you need to start playing music. The Player is starting and managing his own playback thread and provides play, pause, resume, stop and seek functionality.

    For a more advanced usage you may take a look at the jlGui Music Player. It's an open source WinAmp clone: http://www.javazoom.net/jlgui/jlgui.html

    The first class to look at would be PlayerUI (inside the package javazoom.jlgui.player.amp). It demonstrates the advanced features of the BasicPlayer pretty well.

    0 讨论(0)
  • 2020-11-22 07:36

    You need to install JMF first (download using this link)

    File f = new File("D:/Songs/preview.mp3");
    MediaLocator ml = new MediaLocator(f.toURL());
    Player p = Manager.createPlayer(ml);
    p.start();
    

    don't forget to add JMF jar files

    0 讨论(0)
  • 2020-11-22 07:38

    I have other methods for that, the first is :

    public static void playAudio(String filePath){
    
        try{
            InputStream mus = new FileInputStream(new File(filePath));
            AudioStream aud = new AudioStream(mus);
        }catch(Exception e){
            JOptionPane.showMessageDialig(null, "You have an Error");
        }
    

    And the second is :

    try{
        JFXPanel x = JFXPanel();
        String u = new File("021.mp3").toURI().toString();
        new MediaPlayer(new Media(u)).play();
    } catch(Exception e){
        JOPtionPane.showMessageDialog(null, e);
    }
    

    And if we want to make loop to this audio we use this method.

    try{
        AudioData d = new AudioStream(new FileInputStream(filePath)).getData();
        ContinuousAudioDataStream s = new ContinuousAudioDataStream(d);
        AudioPlayer.player.start(s);
    } catch(Exception ex){
        JOPtionPane.showMessageDialog(null, ex);
    }
    

    if we want to stop this loop we add this libreries in the try:

    AudioPlayer.player.stop(s);
    

    for this third method we add the folowing imports :

    import java.io.FileInputStream;
    import sun.audio.AudioData;
    import sun.audio.AudioStream;
    import sun.audio.ContinuousAudioDataStream;
    
    0 讨论(0)
  • 2020-11-22 07:40

    Using MP3 Decoder/player/converter Maven Dependency.

    import javazoom.jl.decoder.JavaLayerException;
    import javazoom.jl.player.Player;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    
    public class PlayAudio{
    
    public static void main(String[] args) throws FileNotFoundException {
    
        try {
            FileInputStream fileInputStream = new FileInputStream("mp.mp3");
            Player player = new Player((fileInputStream));
            player.play();
            System.out.println("Song is playing");
            while(true){
                System.out.println(player.getPosition());
            }
        }catch (Exception e){
            System.out.println(e);
        }
    
      }
    
    }
    
    0 讨论(0)
  • 2020-11-22 07:48

    you can play .wav only with java API:

    import javax.sound.sampled.AudioInputStream;
    import javax.sound.sampled.AudioSystem;
    import javax.sound.sampled.Clip;
    

    code:

    AudioInputStream audioIn = AudioSystem.getAudioInputStream(MyClazz.class.getResource("music.wav"));
    Clip clip = AudioSystem.getClip();
    clip.open(audioIn);
    clip.start();
    

    And play .mp3 with jLayer

    0 讨论(0)
  • 2020-11-22 07:48

    The easiest way I found was to download the JLayer jar file from http://www.javazoom.net/javalayer/sources.html and to add it to the Jar library http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-%28Java%29

    Here is the code for the class

    public class SimplePlayer {
    
        public SimplePlayer(){
    
            try{
    
                 FileInputStream fis = new FileInputStream("File location.");
                 Player playMP3 = new Player(fis);
    
                 playMP3.play();
    
            }  catch(Exception e){
                 System.out.println(e);
               }
        } 
    }
    

    and here are the imports

    import javazoom.jl.player.*;
    import java.io.FileInputStream;
    
    0 讨论(0)
提交回复
热议问题