2012-02-07 11 views
1

私のウェブカメラからrtspストリームに接続し、JFrameにフィードを表示するようにチュートリアルコードを実行しようとしています。簡単なクライアントrtspビューアを作成するためにサンプルコードを修正しました。 playMediaメソッドでディレクトリの場所を指定すると、mp3、mpeg、aviをうまく再生できます。Java vlcj 1.2.2 RTSPクライアントの問題(Mac OSX 10.6)

playMedia( "/ Volumes/dl/2つの塔/ 2つの塔 - ディスク1.mp4"); //作品

私は働いているRTSP mrlを入力すると、それは壊れます。 live555を実行しているVLCスタンドアロンアプリケーションで動作します。このクライアントコードでは、黒い画面が表示されます。

import uk.co.caprica.vlcj.binding.LibVlc; 
    import uk.co.caprica.vlcj.runtime.RuntimeUtil; 

    import com.sun.jna.Native; 
    import com.sun.jna.NativeLibrary; 
    import uk.co.caprica.vlcj.binding.LibVlc; 
    import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent; 
    import uk.co.caprica.vlcj.runtime.RuntimeUtil; 
    import javax.swing.SwingUtilities; 
    import com.sun.jna.NativeLibrary; 
    import javax.swing.JFrame; 
    import uk.co.caprica.vlcj.mrl.RtspMrl; 

    public class Tutorial1B { 

     private final EmbeddedMediaPlayerComponent mediaPlayerComponent; 
     public static void main(String[] args) { 

      if (com.sun.jna.Platform.isMac()) { 
       final String jnaLibraryPath = System.getProperty("jna.library.path"); 
       final StringBuilder newJnaLibraryPath = new StringBuilder(jnaLibraryPath != null ? (jnaLibraryPath + ":") : ""); 
       newJnaLibraryPath.append("/Users/Huy/Downloads/vlc-vlckit-x86_64-20120131-2049/VLCKit/VLCKit.framework/Versions/A/lib"); 
       System.setProperty("jna.library.path", newJnaLibraryPath.toString()); 
      } 



      SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       new Tutorial1B(); 
      } 
      }); 
      } 

    private Tutorial1B() { 
     JFrame frame = new JFrame("HUY vlcj"); 

     mediaPlayerComponent = new EmbeddedMediaPlayerComponent(); 

     frame.setContentPane(mediaPlayerComponent); 

     frame.setLocation(100, 100); 
     frame.setSize(1050, 600); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
     String mrl = new RtspMrl().host("192.168.0.191") 
         .port(554) 
         .path("/live/ch01_0/") 
         .value();  

    //mediaPlayerComponent.getMediaPlayer().playMedia("/Volumes/dl/The Lord Of The Rings - The Two Towers/The Lord Of The Rings - The Two Towers - Disc 1.mp4"); 
     mediaPlayerComponent.getMediaPlayer().playMedia(mrl); 
     }  
    } 

私はアイデアがありません。私はこのサイトとチュートリアルを参考にして無駄にしました。助けてくれてありがとう!

+0

VLCJ 1.2.2にバインドするのにどのlibVLCバージョンを使用していますか?また、期待されるMRL文字列は "rtsp://192.168.0.191:554/live/ch01_0 /"ですか?たぶん、あなたは "rtsp://@192.168.0.191:554/live/ch01_0 /"を試すことができます。それが動作する場合、なぜアンパサンドが必要なのか、私に尋ねないでください。私はまた、それが非常に奇妙であることがわかります... –

+0

返信いただきありがとうございます。私は、最新のものを含む64ビットリリースのvlcリリースの複数の安定したビルドを試みました。このコードは、-Djna.library.path = "xxxx \ VideoLan \ VLC"でWindowsをコンパイルしたときに動作します。私はVLCアプリケーション自体でこのmrlをテストしました。私はこれがvlcjの問題かもしれないと思う。 – user1195563

+0

libVLC 64ビット版を使用している場合、Java JVMで動作するVLCJを64ビットでテストしましたか?それ以外の場合は、32ビットバージョンをすべて使用する必要があります... – ecle

答えて

0

こんにちは、私はSnow Leopardでうまくいきます。

MRLについては、@eeとして指定する必要があります。

関連する問題