mp3player med fejl
Hej,Jeg har lavet en klasse MP3Player, som gerne skulle afspille en mp3-fil på min harddisk. Jeg har installeret Java Media Framework, men alligevel får jeg nedenstående fejl, når jeg kompilerer:
"C:\Program Files\JBuilderX\jdk1.4\bin\javaw" -classpath "C:\Documents and Settings\René\jbproject\mp3player\classes;C:\Java\JMF2.1.1\lib\customizer.jar;C:\Java\JMF2.1.1\lib\jmf.jar;C:\Java\JMF2.1.1\lib\mediaplayer.jar;C:\Java\JMF2.1.1\lib\multiplayer.jar;C:\Java\JMF2.1.1\lib\sound.jar;C:\Program Files\JBuilderX\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;C:\Program Files\JBuilderX\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\Program Files\JBuilderX\jdk1.4\jre\javaws\javaws.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\charsets.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\ext\dnsns.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\ext\ldapsec.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\ext\localedata.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\im\indicim.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\im\thaiim.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\jce.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\jsse.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\plugin.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\rt.jar;C:\Program Files\JBuilderX\jdk1.4\jre\lib\sunrsasign.jar;C:\Program Files\JBuilderX\jdk1.4\lib\dt.jar;C:\Program Files\JBuilderX\jdk1.4\lib\htmlconverter.jar;C:\Program Files\JBuilderX\jdk1.4\lib\tools.jar" mp3player.Start
Error: Unable to realize com.sun.media.amovie.AMController@1adc30
C:\Documents and Settings\René\jbproject\mp3player\heroes.mp3
file:/C:/Documents and Settings/René/jbproject/mp3player/heroes.mp3
Error value: 80070003
Hvad kan der være galt?
Her er min klasse:
package mp3player;
/**
*
* @author Administrator
* @version
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
import javax.swing.event.*;
import java.io.*;
import java.net.*;
import javax.media.*;
import java.text.*;
public class MP3Player extends JComponent implements ControllerListener, ActionListener {
//Player objektet der afspiller mediet
//Timer objektet der giver et tidsinterval
Player player = null;
Timer timer = null;
private String oldValuePlay, newValuePlay, oldValueListe, newValueListe;
private int oldValueSlider, newValueSlider, oldValueTotal, newValueTotal;
/** Creates new KamikazeePlayer */
public MP3Player(){
timer = new Timer(300,this);
timer.start();
}
public void chooseMusic(){
File music = new File("C:\\Documents and Settings\\René\\jbproject\\mp3player\\heroes.mp3");
System.out.println(music.getAbsolutePath());
play(music);
}
public void play(File f)
{
URL url;
try{
if(player != null)
{
player.stop();
player.close();
}
url = f.toURL();
System.out.println(url);
player = Manager.createPlayer(f.toURL());
if(player==null)
JOptionPane.showMessageDialog(null, "Kan ikke afspille eller også er der en fejl filen");
else{
player.addControllerListener(this);
player.start();
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Der er opstået en fejl!");
}
}
public void play()
{
if(player != null){
player.setMediaTime(new Time(0));
player.start();
}
}
public void stop()
{
if(player != null){
player.setMediaTime(new Time(0));
player.stop();
tid(player.getMediaTime());
}
}
public void pause(){
if(player != null){
player.stop();
}
}
public void resume(){
if(player != null){
player.start();
}
}
public void tid(Time tidSpillet){
DecimalFormat twoDigits = new DecimalFormat("00");
int min = (int) tidSpillet.getSeconds()/60;
int sec = ((int) tidSpillet.getSeconds())%60;
int t = (int) tidSpillet.getSeconds();
Time total = getTotalTid();
int minTotal = (int) total.getSeconds()/60;
int secTotal = ((int) total.getSeconds())%60;
String s = new String("(" + twoDigits.format(minTotal) + "." + twoDigits.format(secTotal) + ") "
+ twoDigits.format(min) + "." + twoDigits.format(sec));
/*oldValuePlay = newValuePlay;
newValuePlay = s;
firePropertyChange("TidSpil", oldValuePlay, newValuePlay);
oldValueSlider = newValueSlider;
newValueSlider = t;
firePropertyChange("TidSlider", oldValueSlider, newValueSlider);*/
}
private Time getTotalTid()
{
if(player != null){
Time total = player.getDuration();
int minTotal = (int) total.getSeconds()/60;
int secTotal = ((int) total.getSeconds())%60;
return player.getDuration();
}
return new Time(0);
}
public void controllerUpdate(final ControllerEvent event)
{
if(player == null)
return;
else if(event instanceof RealizeCompleteEvent){
Time total = getTotalTid();
int t = (int) total.getSeconds();
/*oldValueTotal = newValueTotal;
newValueTotal = t;
firePropertyChange("TotalTid", oldValueTotal, newValueTotal);*/
}
else if(event instanceof EndOfMediaEvent)
slut();
else if(event instanceof ControllerErrorEvent)
player = null;
}
public void slut(){
player.stop();
player.close();
/* firePropertyChange("Frem", null, null);*/
}
public void stopTimer(){
pause();
}
public void nySliderVærdi(int nyVærdi){
resume();
double ny = (double) nyVærdi;
if(player != null){
player.setMediaTime(new Time(ny));
player.start();
}
}
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource() == timer)
{
if(player == null) return;
if(player.getState() != Controller.Started) return;
tid(player.getMediaTime());
}
}
}
