fi.hut.tml.xsmiles.gui.media.general
Interface Media
- All Known Subinterfaces:
- XSmilesContentHandler
- All Known Implementing Classes:
- AudioMedia, AWTMediaContentHandler, AWTTextMedia, BaseContentHandler, HTMLContentHandler, ImageMedia, ImageMedia, ImageMedia, JMFMedia, JMFMedia, JMFXineMedia, MediaContentHandler, NativeMedia, TextMedia, TextMedia, TextMedia, UnknownContentHandler, XMLContentHandler, XMLMedia
- public interface Media
This is the interface for binary media. The methods should be called in the following
order:
- setUrl(url to media)
- setContainer(myContainer) [not necessary for audio]
- setBounds(0,0, 100, 100)
- addMediaListener(listener) [optional]
- prefetch()
- play()
- pause() [optional]
- play()
- close()
|
Method Summary |
void |
addMediaListener(MediaListener listener)
Adds a MediaListener for this media. |
void |
close()
This will freeze all memory and references to this media. |
int |
getOriginalDuration()
Get the duration of media. |
int |
getOriginalHeight()
Get the real height of the media. |
int |
getOriginalWidth()
Get the real width of the media. |
boolean |
isStatic()
Checks if this media is static or continuous. |
void |
pause()
Pauses the media. |
void |
play()
Plays the media. |
void |
prefetch()
Prefetches media. |
void |
setBounds(int x,
int y,
int width,
int height)
Set the coordinates for the media. |
void |
setContainer(java.awt.Container container)
Sets the container the media will be rendered in. |
void |
setMediaTime(int millisecs)
This moves the time position in media. |
void |
setMLFCListener(MLFCListener listener)
All traffic to the browser, such as ComponentFactory, etc goes through this listener. |
void |
setSoundVolume(int percentage)
Set the sound volume for media. |
void |
setUrl(java.net.URL url)
Sets the URL for this media. |
void |
showControls(boolean visible)
Requests the media player to display a control panel for media. |
void |
stop()
Stops the media. |
setMLFCListener
public void setMLFCListener(MLFCListener listener)
- All traffic to the browser, such as ComponentFactory, etc goes through this listener.
If no listener supplied media players should still function with some basic level.
- Parameters:
listener - The MLFCListener supplied by the browser- See Also:
MLFCListener
isStatic
public boolean isStatic()
- Checks if this media is static or continuous.
- Returns:
- true if media is static (duration is zero, see getOriginalDuration().
getOriginalDuration
public int getOriginalDuration()
- Get the duration of media. Only applicable for continuous media (audio, video).
- Returns:
- The duration of media in millisecs. zero for static media (images, text)
-1 means indefinite (infinite streamed media or unknown duration).
getOriginalWidth
public int getOriginalWidth()
- Get the real width of the media. If not visible, or size is unknown, then returns -1.
- Returns:
- Original width of the media. -1 means no particular width (audio)
or unknown width (text, XML media...)
getOriginalHeight
public int getOriginalHeight()
- Get the real height of the media. If not visible, or size is unknown, then returns -1.
- Returns:
- Original height of the media. -1 means no particular height (audio)
or unknown height (text, XML media...)
setUrl
public void setUrl(java.net.URL url)
- Sets the URL for this media. This method will only set the URL for the media.
To actually download the data, prefetch() or play() should be called.
- Parameters:
url - URL for media
setContainer
public void setContainer(java.awt.Container container)
- Sets the container the media will be rendered in. If media is audio, this
can be null. Can be called if media is already visible in one container,
it will then move to the new container.
- Parameters:
container - This container will contain the media.
setBounds
public void setBounds(int x,
int y,
int width,
int height)
- Set the coordinates for the media. These are relative to the given container,
set using setContainer(). Setting the bounds will always immediately move
the media to a new location, if it is visible.
setSoundVolume
public void setSoundVolume(int percentage)
- Set the sound volume for media. Only applicable for sound media formats.
- Parameters:
percentage - Sound volume, 0-100- (0 is quiet, 100 is original loudness, 200 twice as loud;
dB change in signal level = 20 log10(percentage / 100) )
prefetch
public void prefetch()
throws java.lang.Exception
- Prefetches media. The URL must have been set using setUrl().
The data will be downloaded from the URL. After calling this method,
the media will be in memory and can be played. This is a blocking method.
- Throws:
java.lang.Exception
play
public void play()
throws java.lang.Exception
- Plays the media. The media will be added to the container set using setContainer().
It will be visible. It will also play any animation it possibly has. Also,
audio media is started using this method.
If the media is not yet prefetched, it will first be prefetched.
- Throws:
java.lang.Exception
pause
public void pause()
- Pauses the media. The media will stay visible, but any animations will be paused.
Audio media will be silent. NOT IMPLEMENTED YET.
?How to restart paused media?
stop
public void stop()
- Stops the media. The media will be stopped and it will be invisible. Audio will be
silent.
close
public void close()
- This will freeze all memory and references to this media. If the media is not
yet stopped, it will first be stopped.
setMediaTime
public void setMediaTime(int millisecs)
- This moves the time position in media. Works only for continuous media (video/audio).
- Parameters:
millisecs - Time in millisecs
addMediaListener
public void addMediaListener(MediaListener listener)
- Adds a MediaListener for this media. The listener will be called
- When the media has been prefetched. (NOT IMPLEMENTED YET).
- When the media ends. (continuous media, video/audio)
Static media, such as text and images will end immediately, notifying
immediately about the end of media.
showControls
public void showControls(boolean visible)
- Requests the media player to display a control panel for media.
For audio and video, these can be a volume/play/stop controls,
for images, these can be zoom controls etc.
The controls are GUI dependent, generated through ComponentFactory.
- Parameters:
visible - true=Display controls, false=don't display controls.
X-Smiles 1.2