1

jmf を使用してビデオを再生しようとしています。文字通りすべてのエラーと例外を削除するために何時間も懸命に働いた後、ここでヌルポインター例外が発生しています。ここで NullPointerException を調べたところ、これは、何にも初期化されていない Player mediaPlayer の宣言が正しくないことが原因であることがわかりました。

後で指定する値に直接初期化することのもう1つの問題は、例外もキャッチする必要があるため、プレーヤーが宣言されていない可能性があることです。

これを削除してこのビデオを再生できるようにするにはmediaURL、どうすれば宣言できますか。Playernullpointerexception

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.media.*;
import java.net.URL;
import java.io.*;
import java.net.MalformedURLException;


    public class mediaPlayer extends JFrame
    {

    URL mediaURL;
    Player mediaPlayer;
        public mediaPlayer()
        {   
            JFrame f = new JFrame("new");
            f.setLayout(new BorderLayout());
            f.setSize(500,300);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //file you want to play
            try{
            String name = "file:///"+new File("output.mp4").getAbsolutePath();
                mediaURL = new URL(name);
            }catch (MalformedURLException ex){}
            //create the media player with the media url
            try{
                mediaPlayer = Manager.createRealizedPlayer(mediaURL);
            }catch(IOException ex){} catch(NoPlayerException ex){} catch(CannotRealizeException ex){}
            //get components for video and playback controls
            Component video = mediaPlayer.getVisualComponent();
            Component controls = mediaPlayer.getControlPanelComponent();
            add(video,BorderLayout.CENTER);
            add(controls,BorderLayout.SOUTH);
            f.setVisible(true);

        }
        public static void main(String[] args){
            new mediaPlayer();
        }
    }

Update2

javax.media.NotRealizedError: Cannot get visual component on an unrealized playe
r
        at com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
        at com.sun.media.MediaPlayer.getVisualComponent(MediaPlayer.java:48)
        at mediaPlayer.<init>(mediaPlayer.java:29)
        at mediaPlayer.main(mediaPlayer.java:38)
Exception in thread "main" javax.media.NotRealizedError: Cannot get visual compo
nent on an unrealized player
        at com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
        at com.sun.media.MediaPlayer.getVisualComponent(MediaPlayer.java:48)
        at mediaPlayer.<init>(mediaPlayer.java:29)
        at mediaPlayer.main(mediaPlayer.java:38)

このビデオを再生して、これを削除するのを手伝ってくださいnullpointer exception。私の問題に力を注いでくれたすべての人に感謝します:)。

4

3 に答える 3

0

JMF 2.1.1 - サポートされている形式のページを確認すると、MP4 についての明確な言及がないことに気付くでしょう。理論的には、MP4 ファイルの Service Provider Interface を取得し、それをランタイム クラスパスに追加するのと同じくらい「簡単」に問題を修正します。

要するに、このプロジェクトが、組み込みの、または SPI を提供できる限られたグループのフォーマットを再生するためのものであれば、問題ないはずです。OTOH JMF は「汎用プレーヤー」としては適していません。古すぎて、サポートするフォーマットが少なすぎます。

于 2013-07-27T12:46:02.773 に答える