FileDocCategorySizeDatePackage
VideoControl.javaAPI DocphoneME MR2 API (J2ME)12554Wed May 02 16:47:14 BST 2007javax.microedition.media.control

VideoControl

public interface VideoControl implements GUIControl
VideoControl controls the display of video. A Player which supports the playback of video must provide a VideoControl via its getControl and getControls method.

Fields Summary
int
USE_DIRECT_VIDEO
This defines a mode on how the video is displayed. It is used in conjunction with initDisplayMode.

USE_DIRECT_VIDEO mode can only be used on platforms with LCDUI support.

When USE_DIRECT_VIDEO is specified for initDisplayMode, the arg argument must not be null and must be a javax.microedition.lcdui.Canvas or a subclass of it. In this mode, the video is directly rendered onto the canvas. The region where the video is rendered can be set by the setDisplayLocation method. By default, the location is (0, 0). Drawing any graphics or rendering other video at the same region on the canvas may not be supported.

initDisplayMode returns null in this mode.

Here is one sample usage scenario:


javax.microedition.lcdui.Canvas canvas;
// canvas must be created before being used in the following code.

try {
Player p = Manager.createPlayer("http://mymachine/abc.mpg");
p.realize();
VideoControl vc;
if ((vc = (VideoControl)p.getControl("VideoControl")) != null) {
vc.initDisplayMode(VideoControl.USE_DIRECT_VIDEO, canvas);
vc.setVisible(true);
}
p.start();
} catch (MediaException pe) {
} catch (IOException ioe) {
}

Value 1 is assigned to USE_DIRECT_VIDEO.

Constructors Summary
Methods Summary
public intgetDisplayHeight()
Return the actual height of the current render video.

return
height of the display video
exception
IllegalStateException Thrown if initDisplayMode has not been called.

public intgetDisplayWidth()
Return the actual width of the current render video.

return
width of the display video
exception
IllegalStateException Thrown if initDisplayMode has not been called.

public intgetDisplayX()
Return the X-coordinate of the video with respect to the GUI object where the video is displayed. The coordinate is specified in pixel values relative to the upper left hand corner of the GUI object.

The return value is undefined if initDisplayMode has not been called.

return
the X-coordinate of the video.

public intgetDisplayY()
Return the Y-coordinate of the video with respective to the GUI object where the video is displayed. The coordinate is specified in pixel values relative to the upper left hand corner of the GUI object.

The return value is undefined if initDisplayMode has not been called.

return
the Y-coordinate of the video.

public byte[]getSnapshot(java.lang.String imageType)
Get a snapshot of the displayed content. Features and format of the captured image are specified by imageType. Supported formats can be queried from System.getProperty with video.snapshot.encodings as the key. The first format in the supported list is the default capture format.

param
imageType Format and resolution of the returned image. If null is given, the default capture format is used.
return
image as a byte array in required format.
exception
IllegalStateException Thrown if initDisplayMode has not been called.
exception
MediaException Thrown if the requested format is not supported or the Player does not support snapshots.
exception
SecurityException Thrown if the caller does not have the security permission to take the snapshot.

public intgetSourceHeight()
Return the height of the source video. The height must be a positive number.

return
the height of the source video

public intgetSourceWidth()
Return the width of the source video. The width must be a positive number.

return
the width of the source video

public java.lang.ObjectinitDisplayMode(int mode, java.lang.Object arg)
Initialize the mode on how the video is displayed. This method must be called before video can be displayed.

Two modes are defined:

On platforms with LCDUI support, both modes must be supported.

param
mode The video mode that determines how video is displayed. It can be USE_GUI_PRIMITIVE, USE_DIRECT_VIDEO or an implementation- specific mode.
param
arg The exact semantics of this argument is specified in the respective mode definitions.
return
The exact semantics and type of the object returned are specified in the respective mode definitions.
exception
IllegalStateException Thrown if initDisplayMode is called again after it has previously been called successfully.
exception
IllegalArgumentException Thrown if the mode or arg argument is invalid. mode must be USE_GUI_PRIMITIVE, USE_DIRECT_VIDEO, or a custom mode supported by this implementation. arg must conform to the conditions defined by the respective mode definitions. Refer to the mode definitions for the required type of arg.

public voidsetDisplayFullScreen(boolean fullScreenMode)
Set the size of the render region for the video clip to be fullscreen. It is left up to the underlying implementation how fullscreen mode is implemented and what actual dimensions constitutes fullscreen. This is useful when the application does not know the actual width and height dimensions that are needed to make setDisplaySize(width, height) go to fullscreen mode. For example, on a device with a 400 pixel wide by 200 pixel high screen, a video clip that is 50 pixels wide by 100 pixels high in fullscreen mode may be 100 pixels wide by 200 pixels high if the underlying implementation wants to preserve the aspect ratio. In this case, an exception is not thrown.

param
fullScreenMode Indicates whether or not to render in full screen mode
exception
MediaException Thrown if resizing to full screen size is not supported.
exception
IllegalStateException Thrown if initDisplayMode has not been called.

public voidsetDisplayLocation(int x, int y)
Set the location of the video with respect to the canvas where the video is displayed.

This method only works when the USE_DIRECT_VIDEO mode is set. In USE_GUI_PRIMITIVE mode, this call will be ignored.

The location is specified in pixel values relative to the upper left hand corner of the GUI object.

By default, video appears at location (0,0).

The location can be given in negative values or can be greater than the actual size of the canvas. When that happens, the video should be clipped to the boundaries of the canvas.

param
x The x coordinate (in pixels) of the video location.
param
y The y coordinate (in pixels) of the video location.
exception
IllegalStateException Thrown if initDisplayMode has not been called.

public voidsetDisplaySize(int width, int height)
Resize the video image.

If the video mode is set to USE_DIRECT_VIDEO, setting the size of the video will not affect the size of the GUI object that the video is displayed. If the video is scaled to beyond the size of the GUI object, the video will be clipped.

If the video mode is set to USE_GUI_PRIMITIVE, Scaling the video will also scale the GUI object.

The actual scaling algorithm is left up to the underlying implementation. If the dimensions of the requested display size are smaller than the dimensions of the video clip, some implementations may choose to merely clip the video while other implementations may resize the video.

If the dimensions of the requested display size are bigger than the dimensions of the video clip, some implementations may resize the video while others may leave the video clip in the original size and just enlarge the display region. It is left up to the implementation where the video clip is placed in the display region in this instance (i.e., it can be in the center of the window or in a corner of the window).

param
width Desired width (in pixels) of the display window
param
height Desired height (in pixels) of the display window
exception
IllegalArgumentException Thrown if the given width and height are non-positive values.
exception
IllegalStateException Thrown if initDisplayMode has not been called.
exception
MediaException Thrown if resizing is not supported or the operation failed due to hardware or software limitations.

public voidsetVisible(boolean visible)
Show or hide the video.

If USE_GUI_PRIMITIVE is set, the video by default is shown when the GUI primitive is displayed. If USE_DIRECT_VIDEO is set, the video by default is not shown when the canvas is displayed until setVisible(true) is called. If the canvas is removed from the screen, the video will not be displayed.

param
visible Show the video if true, hide it otherwise.
exception
IllegalStateException Thrown if initDisplayMode has not been called.