我正在创建的视频编辑程序上的播放按钮不起作用



我正在创建一个视频编辑器,到目前为止进展顺利。我只需要想办法播放我存储在阵列中的视频帧,并将其显示在标签上。这是我迄今为止所尝试的,但没有如预期的那样奏效。视频帧不播放,而是标签仅显示最后一帧。

我只是想知道我哪里出了问题,或者我需要采取一种完全不同的方法来播放这些画面。

帧由JavaFX ImageView(最初是BufferedImage)捕获

 @FXML
public void playButton() {
    for (int i = 0; i < imageList.size(); i++) {
        final int iFinal = i; //Workaround to allow i value to work in inner class
        Task task = new Task<Void>() {
            @Override
            public Void call() {
                try {
                    Thread.sleep((long) (1000 / frameRate));
                    previewBoxLabel.setGraphic(imageList.get(iFinal).getImage());
                    System.out.println("Play");
                } catch (Exception e) {
                }
                return null;
            }
        };
        new Thread(task).start();
    }
}

感谢您提前提供的帮助:)

怎么样

@FXML
public void playButton() {
        Task task = new Task<Void>() {
            @Override
            public Void call() throws Exception {
                for (final ImageView image : imageList) {
                    Platform.runLater(new Runnable() {
                        @Override
                        public void run() {
                            previewBoxLabel.setGraphic(image);
                        }
                    });
                    Thread.sleep((long) (1000 / frameRate));
                }
                return null;
            }
        };
        new Thread(task).start();
    }
}

最新更新