我有一個java類,它實際上是從webcamer捕獲幀。這個類有兩種啓動方式和一種停止方式。我想將這個類添加到我創建的gui中。但是,當我添加功能,因爲他們是我的遊戲卡住了。看來我需要在這裏做一些多線程。我如何將我的類方法添加到新線程中?將java類的方法添加到一個新的線程
編輯:我的代碼,現在是這樣的:
Thread t2 = new Thread(new Runnable() {
public void run()
{
VideoCapture videoCapture = VideoCapture.create(VideoFormat.WMV);
List<VideoSource> availableVideoSources = VideoSource.getAvailable();
//System.out.println("availableVideoSources = " + availableVideoSources);
if (availableVideoSources.isEmpty()) {
throw new IllegalStateException("No external video sources available");
}
VideoSource webCamera = availableVideoSources.get(0);
//System.out.println("webCamera = " + webCamera);
videoCapture.setVideoSource(webCamera);
java.util.List<Codec> videoCodecs = videoCapture.getVideoCodecs();
//System.out.println("videoCodecs = " + videoCodecs);
if (videoCodecs.isEmpty()) {
throw new IllegalStateException("No video codecs available");
}
Codec videoCodec = videoCodecs.get(2);
//System.out.println("videoCodec = " + videoCodec);
EncodingParameters encodingParameters = new EncodingParameters(new File("file.wmv"));
encodingParameters.setBitrate(500000);
encodingParameters.setFramerate(10);
encodingParameters.setKeyFrameInterval(1);
encodingParameters.setCodec(videoCodec);
videoCapture.setEncodingParameters(encodingParameters);
videoCapture.start();
//System.in.read();
//videoCapture.stop();
}});
我通過調用t2.start運行這個線程(),我怎麼能在第二個函數調用videoCapture.stop()?
我使用的是eclipse和javafx。所以我可以爲我的班級創建跑步者? – konstantin
使用跑步者獲取新線程。然後使用該跑步者進行掃描。您可能還想研究JavaFX中的'SwingWorker'和替代方法。我記得在JavaFX中,'invokeLater'等價物是'Platform.runLater(...)'。 – ifly6
我不能這樣做:(我必須在javafx中工作 – konstantin