我正在创建一个视频编辑器,到目前为止进展顺利。我只需要想办法播放我存储在阵列中的视频帧,并将其显示在标签上。这是我迄今为止所尝试的,但没有如预期的那样奏效。视频帧不播放,而是标签仅显示最后一帧。
我只是想知道我哪里出了问题,或者我需要采取一种完全不同的方法来播放这些画面。
帧由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();
}
}