我在Eclipse RCP應用程序的編輯器中使用JavaFX播放視頻。在編輯器UI的初始化,我沿着線的東西:JavaFX 2.2 MediaPlayer:如何在Windows上釋放媒體文件句柄
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的媒體對象從未釋放視頻資源。在編輯器關閉時,我無法在javafx文檔中找到任何指針來要求Media或MediaPlayer對象釋放資源。
我的問題:如何確保javafx在編輯器關閉時發佈視頻文件?
我想這也和它沒有爲我既不工作。這肯定是javafx代碼中的一個錯誤,無法釋放輸入流或其他東西。此外,正如傑拉問題的評論所述,應該有明確的答案。 – langsweirdt