vlcj видео не показывает, звук слышен.Java-Swing vlcj - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь воспроизвести видео в java swing. Все, что я слышу, это аудио, но видео не отображается. Я использую EmbeddedMediaPlayerComponent. Все кнопки правильно отображаются на экране, а также на панели2.

Я попытался просмотреть другие темы и обновил свой код, но он не сработал. Кто-нибудь может помочь с этим?

Обновление: я использую macosx

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;

import com.sun.jna.Native;
import com.sun.jna.NativeLibrary;

import uk.co.caprica.vlcj.binding.RuntimeUtil;
import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent;

public class MediaPlayer extends JPanel {

// Declares our media player component
private EmbeddedMediaPlayerComponent mediaplayer;
// This string holds the media URL path
private static String mediapath;
private String mediaPath="";
private JPanel panel,panel2;
private JButton play_btn, stop_btn, foward_btn, rewind_btn, enlarge_btn;
private JSlider timeline;

public MediaPlayer(String mediaPath) {

    this.mediaPath=mediaPath;

    NativeLibrary.addSearchPath(RuntimeUtil.getLibVlcLibraryName(), "/Applications/VLC.app/Contents/MacOS/lib");
    mediaplayer = new EmbeddedMediaPlayerComponent();

    panel = new JPanel();
    panel.setLayout(new BorderLayout());
    panel.add(mediaplayer, BorderLayout.CENTER);


    //New code
    play_btn = new JButton("play");
    stop_btn = new JButton("stop");
    foward_btn = new JButton("ff");
    rewind_btn = new JButton("rew");
    enlarge_btn = new JButton("enlarge");

    timeline = new JSlider(0, 100, 0);
    timeline.setMajorTickSpacing(10);
    timeline.setMajorTickSpacing(5);
    timeline.setPaintTicks(true);

    panel2 = new JPanel();
    panel2.setLayout(new FlowLayout(FlowLayout.CENTER));
    panel2.add(play_btn);
    panel2.add(stop_btn);
    panel2.add(foward_btn);
    panel2.add(rewind_btn);
    panel2.add(enlarge_btn);
    panel2.add(timeline);
    panel.add(panel2, BorderLayout.SOUTH);
    setLayout(new BorderLayout());
    add(panel, BorderLayout.CENTER);


}

public void play() {
        mediaplayer.mediaPlayer().media().play(mediaPath);
}

public static void main(String[] args) {


    mediapath = "/Users/name/Documents/Projects/Scenario2.mp4";
    MediaPlayer mediaplayer = new MediaPlayer(mediapath);
    JFrame ourframe = new JFrame("Sample");
    ourframe.setContentPane(mediaplayer);
    ourframe.setSize(840, 600);
    ourframe.setVisible(true);
    mediaplayer.play();
    ourframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Я ожидаю увидеть видео на Панели.

...