com.github.sarxos.webcam
Class Webcam

java.lang.Object
  extended by com.github.sarxos.webcam.Webcam

public class Webcam
extends Object

Webcam class.

Author:
Bartosz Firyn (bfiryn)

Constructor Summary
protected Webcam(WebcamDevice device)
          Webcam class.
 
Method Summary
static boolean addDiscoveryListener(WebcamDiscoveryListener l)
          Add new webcam discovery listener.
 boolean addWebcamListener(WebcamListener l)
          Add webcam listener.
 void close()
          Close webcam.
protected  void dispose()
          Completely dispose capture device.
 Dimension[] getCustomViewSizes()
           
static Webcam getDefault()
          Will discover and return first webcam available in the system.
static Webcam getDefault(long timeout)
          Will discover and return first webcam available in the system.
static Webcam getDefault(long timeout, TimeUnit tunit)
          Will discover and return first webcam available in the system.
 WebcamDevice getDevice()
          Return underlying webcam device.
static WebcamDiscoveryListener[] getDiscoveryListeners()
           
static WebcamDiscoveryService getDiscoveryService()
          Return discovery service.
static long getDiscoveryTimeout()
          Return default webcam discovery timeout in milliseconds.
static WebcamDriver getDriver()
          Return webcam driver.
 BufferedImage getImage()
          Capture image from webcam.
 String getName()
          Get webcam name (device name).
 Dimension getViewSize()
           
 Dimension[] getViewSizes()
          Return list of supported view sizes.
 WebcamListener[] getWebcamListeners()
           
static List<Webcam> getWebcams()
          Get list of webcams to use.
static List<Webcam> getWebcams(long timeout)
          Get list of webcams to use.
static List<Webcam> getWebcams(long timeout, TimeUnit tunit)
          Get list of webcams to use.
static boolean isHandleTermSignal()
          Is TERM signal handler enabled.
 boolean isOpen()
          Is webcam open?
 void open()
          Open webcam.
static void registerDriver(Class<? extends WebcamDriver> clazz)
          Register new webcam video driver.
static void registerDriver(String clazzName)
          Register new webcam video driver.
static boolean removeDiscoveryListener(WebcamDiscoveryListener l)
          Remove discovery listener
 boolean removeWebcamListener(WebcamListener l)
          Removes webcam listener.
static void resetDriver()
          Reset webcam driver.

This method is not thread-safe!
 void setCustomViewSizes(Dimension[] sizes)
          Set custom resolution.
static void setDiscoveryTimeout(long timeout)
          Set new devices discovery timeout.
static void setDriver(Class<? extends WebcamDriver> driverClass)
          Set new video driver class to be used by webcam.
static void setDriver(WebcamDriver driver)
          Set new video driver to be used by webcam.

This method is not thread-safe!
static void setHandleTermSignal(boolean on)
          CAUTION!!!

This is experimental feature to be used mostly in in development phase.
 void setViewSize(Dimension size)
          Set new view size.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Webcam

protected Webcam(WebcamDevice device)
Webcam class.

Parameters:
device - - device to be used as webcam
Method Detail

open

public void open()
Open webcam.


close

public void close()
Close webcam.


isOpen

public boolean isOpen()
Is webcam open?

Returns:
true if open, false otherwise

getViewSize

public Dimension getViewSize()
Returns:
Webcam view size (picture size) in pixels.

getViewSizes

public Dimension[] getViewSizes()
Return list of supported view sizes. It can differ between vary webcam data sources.

Returns:

setCustomViewSizes

public void setCustomViewSizes(Dimension[] sizes)
Set custom resolution. If you are using this method you have to make sure that your webcam device can support this specific resolution.

Parameters:
sizes - the array of custom resolutions to be supported by webcam

getCustomViewSizes

public Dimension[] getCustomViewSizes()

setViewSize

public void setViewSize(Dimension size)
Set new view size. New size has to exactly the same as one of the default sized or exactly the same as one of the custom ones.

Parameters:
size - the new view size to be set
See Also:
setCustomViewSizes(Dimension[]), getViewSizes()

getImage

public BufferedImage getImage()
Capture image from webcam.

Returns:
Captured image

getWebcams

public static List<Webcam> getWebcams()
Get list of webcams to use. This method will wait predefined time interval for webcam devices to be discovered. By default this time is set to 1 minute.

Returns:
List of webcams existing in the ssytem
Throws:
WebcamException - when something is wrong
See Also:
getWebcams(long, TimeUnit)

getWebcams

public static List<Webcam> getWebcams(long timeout)
                               throws TimeoutException
Get list of webcams to use. This method will wait given time interval for webcam devices to be discovered. Time argument is given in milliseconds.

Parameters:
timeout - the time to wait for webcam devices to be discovered
Returns:
List of webcams existing in the ssytem
Throws:
WebcamException - when something is wrong
TimeoutException
See Also:
getWebcams(long, TimeUnit)

getWebcams

public static List<Webcam> getWebcams(long timeout,
                                      TimeUnit tunit)
                               throws TimeoutException
Get list of webcams to use. This method will wait given time interval for webcam devices to be discovered.

Parameters:
timeout - the devices discovery timeout
tunit - the time unit
Returns:
List of webcams
Throws:
TimeoutException - when timeout has been exceeded
WebcamException - when something is wrong

getDefault

public static Webcam getDefault()
Will discover and return first webcam available in the system.

Returns:
Default webcam (first from the list)
Throws:
WebcamException - if something is wrong
See Also:
getWebcams()

getDefault

public static Webcam getDefault(long timeout)
                         throws TimeoutException
Will discover and return first webcam available in the system.

Parameters:
timeout - the webcam discovery timeout (1 minute by default)
Returns:
Default webcam (first from the list)
Throws:
TimeoutException - when discovery timeout has been exceeded
See Also:
getWebcams(long)

getDefault

public static Webcam getDefault(long timeout,
                                TimeUnit tunit)
                         throws TimeoutException
Will discover and return first webcam available in the system.

Parameters:
timeout - the webcam discovery timeout (1 minute by default)
tunit - the time unit
Returns:
Default webcam (first from the list)
Throws:
TimeoutException - when discovery timeout has been exceeded
See Also:
getWebcams(long, TimeUnit)

getName

public String getName()
Get webcam name (device name). The name of device depends on the value returned by the underlying data source, so in some cases it can be human-readable value and sometimes it can be some strange number.

Returns:
Name

toString

public String toString()
Overrides:
toString in class Object

addWebcamListener

public boolean addWebcamListener(WebcamListener l)
Add webcam listener.

Parameters:
l - the listener to be added

getWebcamListeners

public WebcamListener[] getWebcamListeners()
Returns:
All webcam listeners

removeWebcamListener

public boolean removeWebcamListener(WebcamListener l)
Removes webcam listener.

Parameters:
l - the listener to be removed
Returns:
True if listener has been removed, false otherwise

getDriver

public static WebcamDriver getDriver()
Return webcam driver. Perform search if necessary.

This method is not thread-safe!

Returns:
Webcam driver

setDriver

public static void setDriver(WebcamDriver driver)
Set new video driver to be used by webcam.

This method is not thread-safe!

Parameters:
driver - new video driver to use (e.g. Civil, JFM, FMJ, QTJ, etc)

setDriver

public static void setDriver(Class<? extends WebcamDriver> driverClass)
Set new video driver class to be used by webcam. Class given in the argument shall extend WebcamDriver interface and should have public default constructor, so instance can be created by reflection.

This method is not thread-safe!

Parameters:
driver - new video driver class to use

resetDriver

public static void resetDriver()
Reset webcam driver.

This method is not thread-safe!


registerDriver

public static void registerDriver(Class<? extends WebcamDriver> clazz)
Register new webcam video driver.

Parameters:
clazz - webcam video driver class

registerDriver

public static void registerDriver(String clazzName)
Register new webcam video driver.

Parameters:
clazzName - webcam video driver class name

getDevice

public WebcamDevice getDevice()
Return underlying webcam device. Depending on the driver used to discover devices, this method can return instances of different class. By default WebcamDefaultDevice is returned when no external driver is used.

Returns:
Underlying webcam device instance

dispose

protected void dispose()
Completely dispose capture device. After this operation webcam cannot be used any more and reinstantiation is required.


setHandleTermSignal

public static void setHandleTermSignal(boolean on)
CAUTION!!!

This is experimental feature to be used mostly in in development phase. After you set handle term signal to true, and fetch capture devices, Webcam Capture API will listen for TERM signal and try to close all devices after it has been received. This feature can be unstable on some systems!

Parameters:
on - signal handling will be enabled if true, disabled otherwise

isHandleTermSignal

public static boolean isHandleTermSignal()
Is TERM signal handler enabled.

Returns:
True if enabled, false otherwise

addDiscoveryListener

public static boolean addDiscoveryListener(WebcamDiscoveryListener l)
Add new webcam discovery listener.

Parameters:
l - the listener to be added
Returns:
True, if listeners list size has been changed, false otherwise

getDiscoveryListeners

public static WebcamDiscoveryListener[] getDiscoveryListeners()

removeDiscoveryListener

public static boolean removeDiscoveryListener(WebcamDiscoveryListener l)
Remove discovery listener

Parameters:
l - the listener to be removed
Returns:
True if listeners list contained the specified element

getDiscoveryService

public static WebcamDiscoveryService getDiscoveryService()
Return discovery service.

Returns:
Discovery service

setDiscoveryTimeout

public static void setDiscoveryTimeout(long timeout)
Set new devices discovery timeout. By default this is set to 1 minute (60000 milliseconds).

Parameters:
timeout - the new discovery timeout in milliseconds

getDiscoveryTimeout

public static long getDiscoveryTimeout()
Return default webcam discovery timeout in milliseconds.

Returns:
Timeout in milliseconds


Copyright © 2012-2013 Bartosz Firyn (SarXos). All Rights Reserved.