私はjavaFXとFXMLで書かれたアプリケーションにVLCJプレーヤーを追加する方法を学んでいます。私はキャンバスに追加しなければならなかった他の質問を読みました。アンカーパネルの下にFXML。JavaFXのキャンバスにVLCJメディアプレーヤーを追加
<Canvas fx:id="mediaPlayerCanvas" height="174.0" layoutX="-4.0" layoutY="-2.0" width="595.0" />
その後、私は私のapplication.javaに
@FXML
public void mediaPlayerCanvas()
{
mediaPlayer = new MediaPlayer();
}
それを初期化し、最終的に私はこの
package Lasercontroller;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.RootPaneContainer;
import javax.swing.SwingUtilities;
import javafx.embed.swing.JFXPanel;
import javafx.scene.canvas.Canvas;
import javafx.scene.layout.Pane;
import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;
import uk.co.caprica.vlcj.discovery.NativeDiscovery;
public class MediaPlayer {
private final Canvas canvas;
private final EmbeddedMediaPlayerComponent mediaPlayerComponent;
public synchronized void start(final String[] args) {
new NativeDiscovery().discover();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new MediaPlayer();
}
});
}
public MediaPlayer() {
canvas = new Canvas();
//canvasl.setBounds(100, 100, 600, 400);
String mediaLocation = "rtsp://192.168.1.175/stream1";
canvas.setVisible(true);
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
//panel.setContentPane(mediaPlayerComponent);
mediaPlayerComponent.getMediaPlayer().playMedia(mediaLocation);
}
}
私は自分のアプリケーションを実行すると、私は例外を取得が含まれていることをMediaPlayer.javaを作成しましたThe video surface component must be displayable
どうしたのですか?私は他の多くの質問を読んだが、私はそれらを理解していない。
あなたの答えをありがとう。私は 'DirectMediaPlayerComponent'を実装するのに数時間を費やしていますが、それ以上ではメディアを埋め込む代わりに新しいスイングフレームを再生することにしました。 –