Java MPD

NEWS
30 December 2010

Release 4.0

See the Wiki for maven details
25 April 2010

Release 3.2
14 April 2010

Release 3.1
2 February 2010

Moved to google code.
18 November 2005

Finally created this webpage.


  bjj@thejavashop.net

Examples

Here are a few quick examples to get you started using JavaMPD. Check out the javadocs page for full documentation.

To establish a connection:

public void getConnection() {
    try {
        mpd = new MPD("172.30.74.4",2100);
        System.out.println("Version:"+mpd.getVersion());
        System.out.println("Uptime:"+mpd.getUptime());
        mpd.close();
    catch(MPDConnectionException e) {
        System.out.println("Error Connecting:"+e.getMessage());
        e.printStackTrace();
    }
}

To use the MPD Player:

public void playerExample(MPD mpd) {
    //get the player from the connection
    MPDPlayer mpdPlayer = mpd.getMPDPlayer();
    try {
        mpdPlayer.play();
        mpdPlayer.getElapsedTime();
        mpdPlayer.pause();
        mpdPlayer.setXFade(5);
        mpdPlayer.setRepeat(true);
        mpdPlayer.seek(100);
        mpdPlayer.play();
        mpdPlayer.stop();
    catch(MPDConnectionException e) {
        System.out.println("Connection error:"+e.getMessage());
        e.printStackTrace();
    }
}

To use the stand alone monitor:

import org.bff.javampd.events.PlayerBasicChangeEvent;
import org.bff.javampd.events.PlayerBasicChangeListener;
import org.bff.javampd.events.PlayerChangeEvent;
import org.bff.javampd.events.PlayerChangeListener;
import org.bff.javampd.events.PlaylistBasicChangeEvent;
import org.bff.javampd.events.PlaylistBasicChangeListener;
import org.bff.javampd.events.TrackPositionChangeEvent;
import org.bff.javampd.events.TrackPositionChangeListener;
import org.bff.javampd.monitor.MPDStandAloneMonitor;

public class TestClass implements TrackPositionChangeListener,
        PlayerBasicChangeListener,
        PlaylistBasicChangeListener {
    
    /** Creates a new instance of TestClass */
    public TestClass(MPD mpd) {
     MPDStandAloneMonitor mpdStandAloneMonitor = new MPDStandAloneMonitor(mpd,1000);
        mpdStandAloneMonitor.addTrackPositionChangeListener(this);
        mpdStandAloneMonitor.addPlayerChangeListener(this);
        Thread th = new Thread(mpdStandAloneMonitor);
        th.start();
    }
    
    public static void main(String args[])  {
        TestClass testClass = new TestClass();
        testClass.test();
    }
    
 
    public void trackPositionChanged(TrackPositionChangeEvent event) {
        System.out.println("Track position event received. Time is:"+event.getElapsedTime());
    }
    
    public void playerBasicChange(PlayerBasicChangeEvent event) {
        System.out.println("Player event received:"+event.getId());
        switch(event.getId()) {
            case(PlayerBasicChangeEvent.PLAYER_STARTED):
                System.out.println("The player was started!");
                break;
        }
    }

    public void playlistBasicChange(PlaylistBasicChangeEvent event) {
        System.out.println("Playlist event received:"+event.getId());
        switch(event.getId()) {
            case(PlaylistBasicChangeEvent.SONG_ADDED):
                System.out.println("A song was added to the playlist!");
                break;
        }
    }
}

To use the MPD database:

public void databaseExample(MPD mpd) {
    try {
        //first get the database from the connection
        MPDDatabase mpdDatabase = mpd.getMPDDatabase();
            
        System.out.println("Finding Songs by Artist Cannible Corpse:");
        List<MPDSong> list = new ArrayList<MPDSong>(mpdDatabase.findArtist("Cannible Corpse"));
        for(MPDSong s : list) {
            System.out.println(s);
        }
        
        System.out.println("Finding Songs in Album Unplugged:");
        list = new ArrayList<MPDSong>(mpdDatabase.findAlbum("Unplugged"));
        for(MPDSong s : list) {
            System.out.println(s);
        }
                    
        System.out.println("Searching for Songs by Artist Clapton, found:");
        list = new ArrayList<MPDSong>(mpdDatabase.searchArtist("Clapton"));
        for(MPDSong s : list) {
            System.out.println(s);
        }
            
        System.out.println("Searching for Songs in Album Unplugged:");
        list = new ArrayList<MPDSong>(mpdDatabase.searchAlbum("Unplugg"));
        for(MPDSong s : list) {
            System.out.println(s);
        }
                       
        System.out.println("Searching Title Lay, found:");
        list = new ArrayList<MPDSong>(mpdDatabase.searchTitle("Lay"));
        for(MPDSong s : list) {
            System.out.println(s);
        }
                       
        System.out.println("Listing All Files:");
        List<String> stringList = new ArrayList<String>(mpdDatabase.listAllFiles());
        for(String s : stringList) {
            System.out.println(s);
        }
            
        System.out.println("Listing All Albums:");
        stringList = new ArrayList<String>(mpdDatabase.listAllAlbums());
        for(String s : stringList) {
            System.out.println(s);
        }
                
        System.out.println("Listing All Artists:");
        stringList = new ArrayList<String>(mpdDatabase.listAllArtists());
        for(String s : stringList) {
            System.out.println(s);
        }
            
        System.out.println("Listing All Albums by Artist Eric Clapton:");
        stringList = new ArrayList<String>(mpdDatabase.listAlbumsByArtist("Eric Clapton"));
        for(String s : stringList) {
            System.out.println(s);
        }
           
        System.out.println("Listing All Playlists:");
        stringList = new ArrayList<String>(mpdDatabase.listPlaylists());
        for(String s : stringList) {
            System.out.println(s);
        }
            
    catch(MPDConnectionException e) {
        System.out.println("Connection error:"+e.getMessage());
        e.printStackTrace();
    }
}

Code formatting generated using Java2html
Last Update: 2 February 2010