1
我试图让他们的教程代码运行从我的摄像头连接到rtsp流并在JFrame上显示提要。我修改了他们的示例代码来创建一个简单的客户端rtsp查看器。当我在playMedia方法中指定目录位置时,我可以播放mp3,mpegs,avi等等。Java vlcj问题1.2.2 RTSP客户端示例(Mac OSX 10.6)
例如mediaPlayerComponent.getMediaPlayer()。playMedia(“/ Volumes/dl /指环王 - 双塔/指环王 - 双塔 - Disc 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);
}
}
我出来的想法,我搜索了这个网站和他们的示例教程无济于事。谢谢您的帮助!
你用什么libVLC版本绑定到VLCJ 1.2.2?此外,预期的MRL字符串是什么:它是“rtsp://192.168.0.191:554/live/ch01_0 /”?也许,你可以试试“rtsp://@192.168.0.191:554/live/ch01_0 /”。不要问我为什么需要使用&符号;我也觉得这很奇怪...... – 2012-02-08 11:05:40
感谢您的回复。我尝试了多个稳定版本的64位版本,包括最新的vlc版本。当我使用-Djna.library.path =“xxxx \ VideoLan \ VLC”执行它时,此代码在Windows中编译时起作用。我已经在VLC应用程序中测试了这个mrl。我怀疑这可能是一个vlcj问题。 – user1195563 2012-02-08 16:32:22
当您使用libVLC 64位版本时,是否测试过在64位Java JVM上运行的VLCJ?否则,你必须使用32位版本的一切... – ecle 2012-02-09 02:21:31