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());
}
私の問題は私がドン果たしたと私のビデオのいただきました合計時間を知ることができるということですビデオが再生されるときに多くのアイデアを持っているし、スライダーも指定された時間で実行されます。事前に提案していただきありがとうございます、私はそれを楽しみにしています!
ただ、注意してください、jVLCがビデオをレンダリングするために重いコンポーネントを使用して、彼らは常にたぶん、あなたは[PlayerControlsPanel](HTTPSを見ている必要がありJSlider' – MadProgrammer
'のような軽量コンポーネントと素晴らしいプレーしていません://github.com/caprica/vlcj/blob/master/src/test/java/uk/co/caprica/vlcj/test/basic/PlayerControlsPanel.java)jVLCリポジトリから... – MadProgrammer
私はすでにコードを参照しています、@MadProgrammerしかし、私はvlcjフレームワークのembeddedmediaplayerを使用しているため、いくつかの競合が発生します。メディアプレーヤーではありません。 – Jaym