You can do something like this (edited from the
screensteps page):
Code:
public void robotInit() {
new Thread(() -> {
UsbCamera camera1 = CameraServer.getInstance().startAutomaticCapture(0);
camera1.setResolution(640, 480);
UsbCamera camera2 = CameraServer.getInstance().startAutomaticCapture(1);
camera2.setResolution(640, 480);
CvSink cvSink1 = CameraServer.getInstance().getVideo(camera1);
CvSink cvSink2 = CameraServer.getInstance().getVideo(camera2);
CvSource outputStream = CameraServer.getInstance().putVideo("Switcher", 640, 480);
Mat image = new Mat();
while(!Thread.interrupted()) {
if(/*switcher button logic*/){
cvSink1.grabFrame(image);
} else{
cvSink2.grabFrame(image);
}
outputStream.putFrame(image);
}
}).start();
}
I'm tired, so this is all I can think of now. The code may not be entirely right, but the general idea should work. There probably is a much better/simpler/more efficient way that I have no clue about.