我创建了一个视频编辑器,到目前为止还顺利。我只需要找出一种方法来播放我存储在数组中的视频帧并将其显示在标签上。这是我到目前为止所尝试过的,它没有按预期工作。视频帧不播放,而标签仅显示最后一帧。
我只是想知道我哪里出错或者我需要采取完全不同的方法来播放这些帧。
框架由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();
}
}
先谢谢你的帮助:)
答案 0 :(得分:1)
怎么样
@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();
}
}