Question

i want to create a program to play shoutcast stream. i copy this code from here and i heve the below error message. i use BasicPlayer library, if you have any other library to suggest, it will be very helpful to me!

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

import javazoom.jlgui.basicplayer.BasicController;
import javazoom.jlgui.basicplayer.BasicPlayer;
import javazoom.jlgui.basicplayer.BasicPlayerEvent;
import javazoom.jlgui.basicplayer.BasicPlayerException;
import javazoom.jlgui.basicplayer.BasicPlayerListener;

public class MP3Player implements BasicPlayerListener, Runnable {

    public String streamurl;
    public BasicController playerControl;
    private BasicPlayer player;
    private volatile boolean shouldPlay = true;

    @Override
    public void run() {
        while (true) {
            if (shouldPlay) {
                player();
            }
        }
    }

    public void start() {
        new Thread(this).start();
    }

    public void pause() {

        shouldPlay = false;

        try {
            playerControl.stop();
        } catch (BasicPlayerException ex) {
            Logger.getLogger(MP3Player.class.getName()).log(Level.SEVERE, null,
                    ex);
        }

    }

    public void play() {
        shouldPlay = true;
    }

    public MP3Player(String givenStreamurl) {
        streamurl = givenStreamurl;
    }

    public void player() {

        shouldPlay = false;
        player = new BasicPlayer();
        playerControl = (BasicController) player;
        player.addBasicPlayerListener(this);
        try {
            try {
                playerControl.open(new URL(streamurl));
            } catch (MalformedURLException ex) {
                System.out.println("aaa");
            }
            playerControl.play();
            playerControl.setGain(0.85);
            playerControl.setPan(0.0);
        } catch (BasicPlayerException ex) {
        }

    }
}

error message

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at javazoom.jlgui.basicplayer.BasicPlayer.<clinit>(Unknown Source)
    at MP3Player.player(MP3Player.java:57)
    at Main.main(Main.java:6)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

line 57 is

player = new BasicPlayer();

thanx!

Was it helpful?

Solution

As the exception clearly says classnotfoundexception, which means that it cannot find the class org.apache.commons.logging.LogFactory in the classpath.

Download the jars from commons-logging and put it in your classpath.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top