VLCJ 플레이어를 캔버스 안에 넣으려고합니다. 나는 이미 그것에 관해 많은 주제를 읽었지 만, 나는 내가하고 싶은 것을 성취 할 수 없다.캔버스에 VLCJ 플레이어 표시
public class RaspberryControler extends JFrame
{
/*Have to declare it in order to use vlcj*/
private EmbeddedMediaPlayerComponent mediaPlayerComponent;
private EmbeddedMediaPlayer mediaPlayer;
public RaspberryControler(String host){
this.host = host;
controler = new Controler(this);
initComponents();
}
private void initComponents(){
setBasicParameters();
createMainPanel();
createControlPanel();
createWebcamPanel();
mainPanel.add(webcamPanel);
mainPanel.add(controlPanel);
setListeners();
/*Set the last parameters of the frame*/
this.revalidate();
this.repaint();
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
}
private void createMainPanel(){
mainPanel = new JPanel();
/*Set the Layout*/
mainPanel.setLayout(new FlowLayout());
mainPanel.setVisible(true);
/*Set the parameters*/
this.getContentPane().add(mainPanel);
}
private void createWebcamPanel(){
/*Get the VLC Libraries*/
NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "C:/VLC/VideoLAN/VLC");
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
/*Create components*/
liveStream = new JLabel("Live Stream");
mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
/*Set parameters of the components*/
liveStream.setPreferredSize(new Dimension(200, 30));
liveStream.setHorizontalAlignment(SwingConstants.CENTER);
/*Set the layout*/
webcamPanel = new JPanel();
webcamPanel.setLayout(new BorderLayout());
webcamPanel.setPreferredSize(new Dimension(550, 480));
webcamPanel.setBorder(BorderFactory.createLineBorder(Color.RED));
/*Place the components*/
webcamPanel.setVisible(true);
webcamPanel.add(liveStream, BorderLayout.NORTH);
webcamPanel.add(mediaPlayerComponent, BorderLayout.CENTER);
this.setVisible(true);
try{
mediaPlayerComponent.getMediaPlayer().playMedia("http://127.0.0.1:8989/movie");
}catch(IllegalStateException e){
System.out.println(e.toString());
}
}
그리고, 물론, WebcamPanel 현재 JFrame의에 추가됩니다 여기
은 내가 사용하는 코드입니다.내가 뭘 잘못 했니?
다음은 출력입니다. The video surface component must be displayable
응답하시는 분께 감사드립니다! https://github.com/caprica/vlcj/issues/29 - - Failed to play video by vlcj in java
답변 해 주셔서 감사합니다. 좀 더 정확하게 내 질문을 업데이트하고 이제 EmbeddedMediaPlayer를 사용합니다. 그래도 나는 다음과 같은 결과를 얻었습니다. 비디오 표면 구성 요소를 표시 할 수 있어야합니다. 그게 무슨 뜻인지 아십니까? – Mornor
감사합니다. 저에게 감사합니다. 나는 그 코드가 내가 지금 가지고있는 것이되도록 질문을 편집했다. 스트림을 재생하려고하기 전에 프레임을 표시하도록 설정했지만 여전히 동일한 오류가 발생합니다. 나는 왜 그런지 모르겠다. ... – Mornor
오 예, 실제로 검은 색 사각형과 같은 제 패널의 플레이어와 같은 것을 가지고 있지만 오류는 여전히 있습니다. – Mornor