Bank queries are not supported (isBankQuerySupported
will
return false).
Instruments can be changed by both MIDIControl.setProgram
and MIDIControl.shortMidiEvent
with
midi events, as suggested by the MMAPI specification for setProgram
.
However, instruments are loaded into memory only with setProgram
,
so the shortMidiEvent
solution does not work if the instrument
in question has not been loaded before with setProgram
.
It is preferable to use setProgram
only.
The default bank number is 15488. It is substituted when bank number -1 is used. The default drum bank number is 15484.
PitchControl
is supported for MIDI. Maximum pitch
value is 2400 and minimum -2400. Default pitch value is 0.
TempoControl
is supported for MIDI. Maximum tempo
value is 300000 and minimum 10000. Default tempo value is 120000.
When recording to a file by setting the record destination using setRecordLocation(java.lang.String
locator)
, the destination file must already exist in the file system.
The contents of that file will be overwritten when the recording is performed.
S60 3rd Ed. FP 2: setRecordLocation
now creates
the destination file itself if it does not already exist in the file system.
StopTimeControl
is not supported with rtsp://
locators.
No specific notes.
No specific notes.
If the video control's display mode is set to USE_DIRECT_VIDEO
,
the second parameter of method initDisplayMode
can be
any class derived from Canvas
(or GameCanvas
or FullCanvas
).
In Canvas
, the video will be drawn on top of all other
drawings.
In method setDisplaySize
, if the requested display
size is different to the dimensions of the video clip, the image will be scaled
to fit.
The method setDisplayFullScreen(true)
is supported
for both Canvas
and FullCanvas
;
in Canvas
it only sets the display to the whole Canvas
,
not the whole screen. The values returned by the methods getDisplayWidth
and getDisplayHeight
are
unaffected by this call (that is, they do not afterwards return the width
and height of the full screen).
The minimum useful video image width and heigth values for VideoControl.setDisplaySize(
int width, int height )
is 32. If either width or height is set
to less than 32, the video image is not shown. In this case, playback is not
affected otherwise, so audio is still played.
VideoControl.getSnapshot
always returns a blank
image if a snapshot is taken from a video content player. Actual snapshots
are only supported when a camera locator is used (e.g. device://video
, device://devcam0
).
Camera Snapshot Image Types:
If a video snapshot is taken (by using the getSnapshot
of VideoControl
),
the supported image types are encoding=png
, encoding=bmp
, encoding=gif
,
and encoding=jpeg
. It is also possible to use mime-types
such as encoding=image/jpeg
.
JPEG images have parameters for quality
, which
can be value from 0 to 100. If the type
parameter exists,
then it must be “jfif” (exif is not supported). The image format may optionally
include width and height parameters (which defaults to 160x120):
videoControl.getSnapshot(null); // default PNG, 160x120 videoControl.getSnapshot("encoding=bmp"); // BMP, 160x120 videoControl.getSnapshot("width=80&height=60"); // default PNG, 80x60 // BMP, 80x60, palettized 256-color videoControl.getSnapshot("encoding=bmp&width=80&height=60"); videoControl.getSnapshot("encoding=jpeg&quality=10"); // JPG, quality 10
Snapshots are always taken with the next largest image size supported by the product. For example, if 460x345 is requested, then a 640x480 image is taken and resized down. If the requested size is larger than the largest image size supported by the product, then the largest possible image is taken and enlarged to the requested size. If the aspect ratio requested does not match the default, the resulting image will be distorted.
The maximum image size that can be captured depends on selected image
format, encoding options and free heap memory available. The images are generally
first captured as raw image data and then encoded to selected image format.
The raw image as well as image resizing and encoding steps use quite lot of
memory. If memory is exhausted, then OutOfMemoryError
will
be thrown.
If a JPEG image is requested in a common size that is directly supported by the camera, then the image is captured directly to JPEG image by camera and no resizing or encoding are needed. In this case far less memory is used and image capturing is faster. It is thus strongly adviced that at least larger images (larger than 1mpix) are captured as JPEG images and in a common image size (e.g. 1600x1200 for 2mpix an so on). Supported common image sizes are dependent on product and platform version.
VolumeControl.getVolume
initially returns value
100 if the volume level of the player has not been set using theVolumeControl.setVolume
.
S60 3rd Ed. FP 2: VolumeControl.getVolume
initially
returns the current system volume level.
RateControl
is supported for MIDI and tone players.
The maximum rate value is 1000000 and the minimum rate value is 100.
S60 3rd Ed. FP
1: RateControl
is also supported for other audio
formats. For them, only rate values 100000 and 0 are supported. Effectively
this means that it supports a normal rate and a 'stopped rate'.
The default rate for all players is 100000.
S60 3rd Ed. FP
1: FramePositioningControl
is only supported for
the file
protocol. Keep in mind that FramePositioningControl
is
frame-accurate for animated GIF but less accurate for other video medias.
S60 3rd Ed. FP
1: MetaDataControl
has always available at least
the default keys that are listed in the MMAPI specification (MetaDataControl.AUTHOR_KEY
, MetaDataControl.COPYRIGHT_KEY
, MetaDataControl.DATE_KEY
, MetaDataControl.TITLE_KEY
).
If the media does not have metadata values for these keys, they will have
the value unknown
. If the media does not have metadata
at all, these keys are still available with the associated values unknown
.