java vlcj 1.2.2 RTSP客户端示例的故障(Mac OSX 10.6)

java vlcj 1.2.2 RTSP客户端示例的故障(Mac OSX 10.6),java,rtsp,vlcj,Java,Rtsp,Vlcj,我正在尝试运行他们的教程代码,从我的网络摄像头连接到rtsp流,并在JFrame上显示提要。我修改了他们的示例代码,制作了一个简单的客户端rtsp查看器。当我在playMedia方法中指定目录位置时,我可以播放MP3、MPEG和avi e、 g.mediaPlayerComponent.getMediaPlayer().playMedia(“/Volumes/dl/指环王-双塔/指环王-双塔-光盘1.mp4”)//工作 当我进入一个工作的RTSP mrl时,它会中断。它在运行live555的VL

我正在尝试运行他们的教程代码,从我的网络摄像头连接到rtsp流,并在JFrame上显示提要。我修改了他们的示例代码,制作了一个简单的客户端rtsp查看器。当我在playMedia方法中指定目录位置时,我可以播放MP3、MPEG和avi

e、 g.mediaPlayerComponent.getMediaPlayer().playMedia(“/Volumes/dl/指环王-双塔/指环王-双塔-光盘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);
       }    
    }

我已经没有主意了,我在这个网站和他们的教程中寻找例子,但都没有用。谢谢你的帮助

嗨,我在《雪豹》上玩得很好


对于MRL,您必须指定为@ee said。

您使用哪个libVLC版本绑定到VLCJ 1.2.2?此外,预期的MRL字符串是什么:是“rtsp://192.168.0.191:554/live/ch01_0/"? 也许,你可以试试“rtsp://@192.168.0.191:554/live/ch01_0/”。不要问我,如果它工作的话,为什么需要符号;我也觉得很奇怪…谢谢你的回复。我尝试了64位版本的vlc版本的多个稳定版本,包括最新版本。当我使用-Djna.library.path=“xxxx\VideoLan\VLC”执行代码时,在Windows中编译代码时,该代码可以工作。我已经在VLC应用程序中测试了这个mrl。我怀疑这可能是vlcj的问题。使用libVLC 64位版本时,您是否测试过64位Java JVM上运行的vlcj?否则,您必须对所有内容使用32位版本。。。