Methods Summary |
---|
private native boolean | buildDSGraph(int deviceNo)Build the DirectShow capture filter graph
|
public void | connect()Open a connection to the source described by
the MediaLocator .
The connect method initiates communication with the source.
if (connected)
return;
MediaLocator locator = getLocator();
String remainder = locator.getRemainder();
int deviceNo = -1;
if (remainder.startsWith("//")) {
remainder = remainder.substring(2);
try {
deviceNo = Integer.valueOf(remainder).intValue();
}
catch (NumberFormatException e) {
deviceNo = -1;
}
}
if (deviceNo == -1) {
System.out.println("Illegal locator, using default device");
System.out.println("Use: ds://<DeviceNumber> for specific device");
deviceNo = 0;
}
if (!buildDSGraph(deviceNo)) {
System.out.println("Error building DirectShow Filter Graph");
throw new IOException("Error building DirectShow Filter Graph");
}
stream = new DSSourceStream(); // should we have here parameters???
connected = true;
|
private native void | destroyDSGraph()Destroy the DirectShow capture filter graph
|
public void | disconnect()Close the connection to the source described by the locator.
The disconnect method frees resources used to maintain a
connection to the source.
If no resources are in use, disconnect is ignored.
If stop hasn't already been called,
calling disconnect implies a stop.
if (!connected)
return;
destroyDSGraph();
stream = null;
connected = false;
|
public java.lang.String | getContentType()Get a string that describes the content-type of the media
that the source is providing.
It is an error to call getContentType if the source is
not connected.
return "raw";
|
public java.lang.Object | getControl(java.lang.String controlType)Obtain the object that implements the specified
Class or Interface
The full class or interface name must be used.
If the control is not supported then null
is returned.
return null;
|
public java.lang.Object[] | getControls()Obtain the collection of objects that
control the object that implements this interface.
If no controls are supported, a zero length
array is returned.
return new Object[0];
|
public javax.media.Time | getDuration()Get the duration of the media represented
by this object.
The value returned is the media's duration
when played at the default rate.
If the duration can't be determined (for example, the media object is presenting live
video) getDuration returns DURATION_UNKNOWN .
return DURATION_UNKNOWN;
|
public javax.media.protocol.PushBufferStream[] | getStreams()Get the collection of streams that this source
manages. The collection of streams is entirely
content dependent. The ContentDescriptor
of this DataSource provides the only indication of
what streams can be available on this connection.
streams[0] = stream;
return streams;
|
public void | start()Initiate data-transfer. The start method must be
called before data is available.
(You must call connect before calling start .)
if (started)
return;
stream.start(); // start a thread to initiate the Processor's read() calls
if (!startDSGraph()) {
System.out.println("Error while starting DirectShow Filter Graph");
throw new IOException("Error while starting DirectShow Filter Graph");
}
started = true;
|
private native boolean | startDSGraph()Start the DirectShow capture filter graph
|
public void | stop()Stop the data-transfer.
If the source has not been connected and started,
stop does nothing.
if (!started)
return;
stream.stop();
if (!stopDSGraph()) {
System.out.println("Error stopping DirectShow Filter Graph");
throw new IOException("Error stopping DirectShow Filter Graph");
}
started = false;
|
private native boolean | stopDSGraph()Stop the DirectShow capture filter graph
|