2017-01-11 1 views
0

jslider를 실행 한 비디오를 재생할 때 문제가 발생했습니다. 여기에 샘플 코드가 있습니다.vlcj 프레임 워크를 사용하여 비디오를위한 타임 라인이 될 수있는 Jslider를 만드는 방법

public Test() { 


NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "lib"); 
     Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class); 

     mediaPlayer = new EmbeddedMediaPlayerComponent(); 
      p2.setLayout(newBorderLayout()); 
p2.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); 
b2.setIcon(new ImageIcon("pause.png")); 
b2.revalidate(); 
b3.setIcon(new ImageIcon("skip.png")); 
b3.revalidate(); 
b3.repaint(); 
p2.add(mediaPlayer); 
mediaPlayer.getMediaPlayer().playMedia("intranet.mp4"); 
    slider.setValue((int) mediaPlayer.getMediaPlayer().getLength()); 
     } 
다음

내 버튼을 여기

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           

    int time = (int) mediaPlayer.getMediaPlayer().getLength(); 


    JOptionPane.showMessageDialog(null,time); 

}           

private void sliderStateChanged(javax.swing.event.ChangeEvent evt) {          

    label1.setText("Value" + slider.getValue()); 
}         

private void b3ActionPerformed(java.awt.event.ActionEvent evt) {         

    mediaPlayer.getMediaPlayer().skip(10000); 
    JOptionPane.showMessageDialog(null, mediaPlayer.getMediaPlayer().getLength()); 
}         

private void b2ActionPerformed(java.awt.event.ActionEvent evt) {         

    mediaPlayer.getMediaPlayer().pause(); 
    b2.removeAll(); 
}         

private void b1ActionPerformed(java.awt.event.ActionEvent evt) {         


    mediaPlayer.getMediaPlayer().skip(-10000); 
    int time = (int) mediaPlayer.getMediaPlayer().getLength(); 
    JOptionPane.showMessageDialog(null, mediaPlayer.getMediaPlayer().getLength()); 



} 

내 문제는 내가 돈을 비디오의 총 시간은 내가 재생이 뭐죠 알고 내가 할 수 있다는 것입니다 .. 내 샘플 코드 동영상을 재생할 때 많은 아이디어가 있으며 슬라이더도 지정된 시간만큼 실행됩니다. 사전에 제안에 감사드립니다, 나는 그것을 고대하고 있습니다 !!

+0

그냥 어쩌면 당신은 [PlayerControlsPanel] 봐 (HTTPS를해야한다 그들은 항상 JSlider' – MadProgrammer

+0

'와 같은 경량 구성 요소와 함께 좋은 연주하지 않는, jVLC 비디오를 렌더링하는 무거운 무게 구성 요소를 사용하여, 조심 : //github.com/caprica/vlcj/blob/master/src/test/java/uk/co/caprica/vlcj/test/basic/PlayerControlsPanel.java) jVLC Repo에서 ... – MadProgrammer

+0

코드를 이미 봅니다. , @MadProgrammer하지만 난 약간의 충돌을 얻을 vlcj 프레임 워크의 embeddedmediaplayer 그것을 사용하지 않기 때문에 자체 미디어 플레이어 – Jaym

답변

0

오버라이드 된 메서드를 사용하십시오. 새 인스턴트 비디오가 전송 될 때마다 시간 경과됨을 변경하고 슬라이더 진행률을 변경할 때마다 jslider에 연결하십시오.

mediaplayer = new EmbeddedMediaPlayerComponent(); 

     embededMediaPlayer = mediaplayer.getMediaPlayer(); 
     embededMediaPlayer.setRepeat(true); 
     videoSurface = mediaplayer.getVideoSurface(); 

     embededMediaPlayer.addMediaPlayerEventListener(new MediaPlayerEventAdapter() { 
      /** 
      * 
      * @param mediaPlayer play video 
      * @param newTime get every millisecond changed in the mediaplayer 
      * when is in playing mode 
      */ 
      @Override 
      public void timeChanged(MediaPlayer mediaPlayer, long newTime) { 
       super.timeChanged(mediaPlayer, newTime); 
       // here put you code to set new slider progress value 
       } 
      }); 
관련 문제