Проблема с vlcj для воспроизведения видео

В рамках проекта для колледжа я должен иметь возможность воспроизводить видео в своем Java-приложении.

Я написал следующий код:

EmbeddedMediaPlayerComponent component = new EmbeddedMediaPlayerComponent();

JFrame f = new JFrame ();

f.setContentPane(component);

f.setBounds(new Rectangle (200,200,800,600));

f.addWindowListener(new WindowAdapter() {

    public void windowClosing (WindowEvent e) {

    component.release();

    System.exit(0);

    }

});

f.setVisible(true);

component.mediaPlayer().media().play("video");

Все успешно компилируется, и когда я запускаю проект, открывается окно для видео, я слышу звук видео, но изображение не отображается. Может ли кто-нибудь помочь мне исправить это?


person Community    schedule 15.12.2019    source источник
comment
На какой платформе вы работаете? макОС?   -  person caprica    schedule 15.12.2019
comment
да, я работаю на macOS @caprica   -  person    schedule 15.12.2019


Ответы (1)


EmbeddedMediaPlayerComponent требуется AWT Canvas для встраивания видео.

При работе в macOS тяжеловесный AWT отсутствует, поэтому обычный встроенный компонент медиаплеера работать не будет.

Вместо этого вам нужно использовать некоторую форму «прямого рендеринга», когда вы сами рисуете видео в какой-то легкий компонент. vlcj обеспечивает реализацию этого с помощью CallbackMediaPlayerComponent

Чтобы заставить работать основы, вы можете просто заменить свой код:

EmbeddedMediaPlayerComponent component = new EmbeddedMediaPlayerComponent();

С:

CallbackMediaPlayerComponent component = new CallbackMediaPlayerComponent();

Это даст вам разумное поведение по умолчанию, вы можете настроить CallbackMediaPlayerComponent, если вам нужно.

Производительность этого подхода будет не такой высокой, как у встроенного компонента, но для большинства случаев использования ее будет достаточно.

person caprica    schedule 15.12.2019