我使用此代码使用xuggler转换视频: http://www.jochenhebbrecht.be/site/2010-10-12/java/converting-resizing-videos-in-java-xuggler
转换工作正常并且行:
reader.addListener(ToolFactory.makeViewer(true));
让我查看两个带视频和统计信息的窗口。问题是,转换后窗口不会自动关闭,我不知道该怎么做。
我将上面的一行改为
IMediaListener imL=ToolFactory.makeViewer(IMediaViewer.Mode.FAST_VIDEO_ONLY,true);
reader.addListener(imL);
然后我插入
reader.removeListener(imL);
reader.close();
但转换/任务完成后窗口不会消失。所以我想知道如何访问这个窗口来实现一个简单的stage.close()。
编辑:我正在使用Java 8
EDIT2: 我现在试过
StageHelper.getStages().size(); //-> 1
和
Iterator<Window> windows=Window.impl_getWindows();
String window_String="";
while(windows.hasNext()){
window_String+=" |-> "+
}
System.out.println("WINDOWS: ---->"+Window.impl_getWindows());
两者都表明只有一个窗口。看来,窗户来自 “ reader.addListener(ToolFactory.makeViewer(true)); ”不在列表中。
答案 0 :(得分:1)
问题是Xuggler使用Swing而不是JavaFX,因此Window.impl_getWindows()
和StageHelper.getStages()
不会返回使用ToolFactory.makeViewer(true)
创建的窗口。
所以正确的方法是java.awt.Window.getWindows()
。