ビデオを再生するために、EclipseRCPアプリケーションのエディターでJavaFXを使用しています。エディターUIの初期化中に、次のように実行します。
canvas = new FXCanvas(imageSection, SWT.NONE);
canvas.setScene(createScene());
...
// createScene()
Media media = new Media(file.toURI().toString());
MediaPlayer player = new MediaPlayer(media);
MediaView view = new MediaView(player);
...
player.play();
エディターのdisposeメソッドでは、ビデオの再生が停止することを確認します。
@Override
public void dispose() {
player.stop();
super.dispose();
}
ただし、エディターを閉じた後に(自分のアプリケーションまたはWindowsエクスプローラーの両方から)エディターで再生していたビデオリソースを削除したい場合、ファイルはまだアプリケーションで使用されているため、削除できません。fxのMediaオブジェクトがビデオリソースをリリースしたことがないようです。エディターを閉じたときにMediaまたはMediaPlayerオブジェクトにリソースを解放するように要求するポインターがjavafxドキュメントに見つかりません。
私の質問:エディターを閉じたときにjavafxがビデオファイルをリリースすることを確認するにはどうすればよいですか?