2011-06-20 5 views
0

私は現在、GUIにビデオを埋め込むためにJMFで遊んでいます。私は見栄えの良いクラスを持っていますが、私は私の頭を傷つける奇妙なstacktraceを取得し続けています。Javaスタックトレース分析、メディアの不良ヘッダー?

Failed to configure: [email protected] 
    Bad header in the media: IOException when parsing hdrl 

Error: Unable to realize [email protected] 
javax.media.CannotRealizeException 
    at javax.media.Manager.blockingCall(Manager.java:2005) 
    at javax.media.Manager.createRealizedPlayer(Manager.java:554) 
    at EmbeddedPlayer.<init>(EmbeddedPlayer.java:24) 
    at MenuFrame.addMedia(MenuFrame.java:142) 
    at ConfigReader.parse(ConfigReader.java:362) 
    at ConfigReader.findFrames(ConfigReader.java:60) 
    at ConfigReader.main(ConfigReader.java:32) 
Exception in thread "main" java.lang.NullPointerException 
    at EmbeddedPlayer.<init>(EmbeddedPlayer.java:35) 
    at MenuFrame.addMedia(MenuFrame.java:142) 
    at ConfigReader.parse(ConfigReader.java:362) 
    at ConfigReader.findFrames(ConfigReader.java:60) 
    at ConfigReader.main(ConfigReader.java:32) 
seek: java.io.IOException: Negative seek offset 

私は1年間Javaで開発してきましたが、トレースが今私に何を伝えているのかよく分かりません。

私に何が起こっているかを伝えるだけであれば、大きな助けになります。ここ

はEmbeddedPlayerです:この例に基づいて

import java.awt.BorderLayout; 
import java.awt.Component; 
import javax.media.Manager; 
import javax.media.MediaLocator; 
import javax.media.Player; 
import javax.swing.JPanel; 

@SuppressWarnings("serial") 
public class EmbeddedPlayer extends JPanel { 

    private MenuFrame parent; 
    public static final String DEFAULT_MEDIA_PATH = "media/"; 

    public EmbeddedPlayer(MenuFrame parent, String file) { 
     this.parent = parent; 
     setLayout(new BorderLayout()); 
     Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true); 

     Player mediaPlayer = null; 
     Component video = null; 
     Component controls = null; 
     try { 
      MediaLocator location = new MediaLocator(file); 
      mediaPlayer = Manager.createRealizedPlayer(location); 
      video = mediaPlayer.getVisualComponent(); 
      controls = mediaPlayer.getControlPanelComponent(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     if (video != null) { add(video, BorderLayout.CENTER); } 
     if (controls != null) { add(controls, BorderLayout.SOUTH); } 

     this.parent.add(this); 
     mediaPlayer.start(); 
    } 
} 

http://www.deitel.com/articles/java_tutorials/20060422/PlayingVideowithJMF/

+0

あなたが渡した 'file'の値は何ですか? –

+0

ファイルは私のビデオファイルへの完全なパスを含む文字列です:file:/// E:\〜java \ Projects \ 1.avi – n0pe

答えて

1

私はEmbeddedPlayerはあなたのコード(ではないJMF)であると信じ、それゆえあなたはEmbeddedPlayerで参照されているオブジェクトをチェックする必要があります。 java、line 35.またはEmbeddedPlayerのコードを投稿してください。

更新:この問題は、再生エンジンを作成できないようです。 おそらくこのURLが役に立ちますhttp://blog.msbbc.co.uk/2007/06/mp3-playback-in-java.html

+0

私のコードを追加しましたが、JPanelを拡張するカスタムクラスとしてEmbeddedPlayerを使用しています。私は簡単にそれを私のフレームに置くことができます。 – n0pe

関連する問題