VLCJ, сбой JVM при включении VideoAdjustments - PullRequest
0 голосов
/ 07 июня 2019

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

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

Я пытался отключить настройки видео, как только получаю события STOPPED или FINISHED, но это не решает проблему.

Я использую VLCj 4.1.0 и код для включения видеонастройка - это просто следующая строка.

this.mediaPlayerComponent.mediaPlayer().video().setAdjustVideo(true);

[ОБНОВЛЕНИЕ 1] :

Следующий код воспроизводит проблему.Когда видео заканчивается, происходит сбой.Обратите внимание, что если закомментирована последняя строка, сбой не произойдет.

import javax.swing.JFrame;

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

public class SelfContainedMediaPlayer {

    private final JFrame frame;
    private static SelfContainedMediaPlayer selfContainedMediaPlayer;
    private final EmbeddedMediaPlayerComponent mediaPlayerComponent;

    public static void main(final String[] args) {

        selfContainedMediaPlayer = new SelfContainedMediaPlayer();
    }

    public SelfContainedMediaPlayer(){
        frame = new JFrame("My First Media Player");
        frame.setBounds(100, 100, 1920, 1080);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mediaPlayerComponent = new EmbeddedMediaPlayerComponent();
        frame.setContentPane(mediaPlayerComponent);
        frame.setVisible(true);

        mediaPlayerComponent.mediaPlayer().media().play("path to video");
        mediaPlayerComponent.mediaPlayer().video().setAdjustVideo(true);
    }
}

Еще несколько подробностей о моей среде.

  • Я использую Windows 10
  • vlcj версия 4.1.0
  • Установленная версия VLC 3.0.6 64bit
  • версия java "11.0.1"

Есть предложения?Спасибо

[ОБНОВЛЕНИЕ 2]:

Я обнаружил проблему.
Как я и ожидал в одном из комментариев ниже, я тестировал vlcj-player приложение, которое я нашел здесь , и я заметил, что проблема с этим приложением отсутствует.
После некоторого копания я обнаружил, что JFrame, содержащий видео, нуждается в TransferHandler.Итак, я решил проблему, просто передав экземпляр TransferHandler в кадр, как показано ниже.

frame.setTransferHandler(new CustomTransferHandler());

CustomTransferHandler - это класс, расширяющий TransferHandler.

К сожалению, я до сих пор не понимаю, почему это вызывает сбой JVM.

...