你好我試圖用jmf創建一個簡單的視頻播放器。我認爲我的代碼可以,但是當我執行它時,我得到一個NoPlayerException。這裏是玩家的代碼:與jmf應用程序的NoPlayerException運行時錯誤
package reproductor;
import java.awt.BorderLayout;
import java.awt.Component;
import java.io.IOException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
import javax.swing.JPanel;
/**
*
* @author pollyox16
*/
public class repropanel extends JPanel{
public repropanel(URL url){
setLayout(new BorderLayout());
Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
try{
createRealizedPlayer().
Component video= reproductor.getVisualComponent();
Component controles=reproductor.getControlPanelComponent();
if(video!=null){
add(video,BorderLayout.CENTER);
}
if (controles!=null){add(controles,BorderLayout.SOUTH);}
reproductor.start();//con esto arrancamos el reproductor.
} //end try
catch(NoPlayerException e3){
System.out.println("player not created");
}
catch (CannotRealizeException e){
System.out.println("player not realized");
}
catch (IOException e2){
System.out.println("io exception catch");
}
}
}
這裏它僅創建一個JFileChooser和URL添加到播放器的主要應用程序的代碼:這裏是主應用程序的代碼:
package reproductor;
import java.net.URL;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
/**
*
* @author pollyox16
*/
public class Reproductor{
public static void main(String[] args) {
JFileChooser selectarchivo= new JFileChooser();
int resultado= selectarchivo.showOpenDialog(null);
if(resultado== JFileChooser.APPROVE_OPTION){
URL miurl=null;
try{
miurl=selectarchivo.getSelectedFile().toURI().toURL();
}//FINAL TRY
catch(Exception e){
System.out.println("error en el main");
}
if(miurl!=null){
JFrame ventana= new JFrame("pollyox16");
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setSize(300,300);
repropanel mireproductor= new repropanel(miurl);
ventana.add(mireproductor);
ventana.setVisible(true);
}
}
}
}
編輯:這裏是異常堆棧跟蹤:
javax.media.NoPlayerException: Cannot find a Player for :file:/C:/Users/Public/Videos/Sample%20Videos/Wildlife.wmv
at javax.media.Manager.createPlayerForContent(Manager.java:1412)
at javax.media.Manager.createPlayer(Manager.java:417)
at javax.media.Manager.createPlayer(Manager.java:332)
at javax.media.Manager.createRealizedPlayer(Manager.java:527)
at reproductor.repropanel.<init>(repropanel.java:34)
at reproductor.Reproductor.main(Reproductor.java:52)
請在發生異常時發佈堆棧跟蹤 – Robin
我剛添加了e3.stackTrace()。謝謝,請幫助我發現錯誤。 –