ウェブカメラから rtsp ストリームに接続し、JFrame にフィードを表示するために、チュートリアル コードを実行しようとしています。サンプルコードを修正して、単純なクライアント rtsp ビューアーを作成しました。playMedia メソッドでディレクトリの場所を指定すると、mp3、mpeg、avi が問題なく再生できます。
例 mediaPlayerComponent.getMediaPlayer().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);
}
}
私にはアイデアがありません。このサイトとそのチュートリアルで例を探しましたが、役に立ちませんでした。助けてくれてありがとう!