1

こんにちはimは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)
4

1 に答える 1

4
javax.media.NoPlayerException: Cannot find a Player for: 
    file:/C:/Users/Public/Videos/Sample%20Videos/Wildlife.wmv

WMVは、 JMF2.1.1のどこにもリストされていません-サポートされている形式。メディアの「迅速で汚い」テストは、メディアをJMFデフォルトプレーヤーにロードすることです。そのプレーヤーがロードしない場合、他のJMFベースのアプリもロードされません。

アプリのテストに使用できるJMF互換メディアを提供するページがあります。と。


JMFは非常に古く、新しいフォーマットはほとんどサポートされていません。ビデオをJMFが読み取れる形式に変換できれば、再生は問題ありませんが、現時点では一般的な「メディアプレーヤー」には適していません。

于 2012-11-15T09:00:43.753 に答える