com.bramosystems.oss.player.core.client.skin
Class CustomAudioPlayer

java.lang.Object
  extended by com.google.gwt.user.client.ui.UIObject
      extended by com.google.gwt.user.client.ui.Widget
          extended by com.google.gwt.user.client.ui.Composite
              extended by com.bramosystems.oss.player.core.client.AbstractMediaPlayer
                  extended by com.bramosystems.oss.player.core.client.skin.CustomAudioPlayer
All Implemented Interfaces:
PlaylistSupport, HasMediaMessageHandlers, HasMediaProgressHandlers, HasMediaStateHandlers, HasPlayStateHandlers, com.google.gwt.event.dom.client.HasKeyDownHandlers, com.google.gwt.event.dom.client.HasKeyPressHandlers, com.google.gwt.event.dom.client.HasKeyUpHandlers, com.google.gwt.event.dom.client.HasMouseDownHandlers, com.google.gwt.event.dom.client.HasMouseMoveHandlers, com.google.gwt.event.dom.client.HasMouseUpHandlers, com.google.gwt.event.logical.shared.HasAttachHandlers, com.google.gwt.event.shared.HasHandlers, com.google.gwt.user.client.EventListener, com.google.gwt.user.client.ui.IsWidget
Direct Known Subclasses:
Capsule

public abstract class CustomAudioPlayer
extends AbstractMediaPlayer
implements PlaylistSupport

Abstract base class for HTML based custom audio players.

The actual player plugin used to playback media files is wrapped by this player and hidden on the browser. This ensures that the player is controlled via the HTML controls provided by implementation classes.

Since:
0.6
Author:
Sikirulai Braheem

Nested Class Summary
 
Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject
com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled
 
Field Summary
protected  Logger logger
          The Logger widget attached to this player
 
Fields inherited from class com.google.gwt.user.client.ui.UIObject
DEBUG_ID_PREFIX
 
Constructor Summary
CustomAudioPlayer(Plugin playerPlugin, java.lang.String mediaURL, boolean autoplay, java.lang.String height, java.lang.String width)
          Constructs CustomAudioPlayer with the specified height and width which uses the specified playerPlugin to playback media located at mediaURL.
 
Method Summary
 void addToPlaylist(java.util.List<MRL> mediaLocators)
          Adds the media locators to the players' playlist.
 void addToPlaylist(MRL mediaLocator)
          Adds the media locator to the players' playlist.
 void addToPlaylist(java.lang.String... mediaURLs)
          Adds the media at the specified URLs to the players' playlist.
 void addToPlaylist(java.lang.String mediaURL)
          Adds the media at the specified URL to the players' playlist.
 void clearPlaylist()
          Removes all entries in the players' playlist
 int getLoopCount()
          Returns the remaining number of times this player loops playback before stopping.
 long getMediaDuration()
          Returns the duration of the loaded media in milliseconds.
 int getPlaylistSize()
          Returns the number of entries in the playlist
 double getPlayPosition()
          Gets the current position in the media that is being played.
 double getRate()
          Returns the current playback rate
 RepeatMode getRepeatMode()
          Returns the current playback repeat mode
 double getVolume()
          Gets the volume ranging from 0 (silent) to 1 (full volume).
protected  void initWidget(com.google.gwt.user.client.ui.Widget widget)
          Overridden to prevent subclasses from changing the wrapped widget.
 boolean isShuffleEnabled()
          Checks if this player is in shuffle mode.
 void loadMedia(java.lang.String mediaURL)
          Loads the media at the specified URL into the player.
 void pauseMedia()
          Pause the media playback
 void play(int index)
          Play playlist entry at the specified index
 void playMedia()
          Plays the media loaded into the player.
 void playNext()
          Plays the next item in the playlist
 void playPrevious()
          Plays the previous item in the playlist
 void removeFromPlaylist(int index)
          Removes the entry at the specified index from the players' playlist.
 void setConfigParameter(ConfigParameter param, java.lang.Number value)
          Sets the specified player parameter to the specified value IF AND ONLY IF the parameter is applicable on the player
 void setConfigParameter(ConfigParameter param, java.lang.String value)
          Sets the specified player parameter to the specified value IF AND ONLY IF the parameter is applicable on the player
<T extends ConfigValue>
void
setConfigParameter(ConfigParameter param, T value)
          Sets the specified player parameter to the specified value IF AND ONLY IF the parameter is applicable on the player
 void setLoopCount(int loop)
          Sets the number of times the current media file should loop playback before stopping.
protected  void setPlayerControlWidget(com.google.gwt.user.client.ui.Widget widget)
          Sets the widget that will be used to control the player plugin.
 void setPlayPosition(double position)
          Sets the playback position of the current media
 void setRate(double rate)
          Sets the playback rate.
 void setRepeatMode(RepeatMode mode)
          Puts the player in the specified repeat mode.
 void setShuffleEnabled(boolean enable)
          Enables or disables players' shuffle mode.
 void setVolume(double volume)
          Sets the volume.
 void showLogger(boolean show)
          Displays or hides the players' logger widget.
 void stopMedia()
          Stops the media playback.
 
Methods inherited from class com.bramosystems.oss.player.core.client.AbstractMediaPlayer
addDebugHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addLoadingProgressHandler, addMediaInfoHandler, addMouseDownHandler, addMouseMoveHandler, addMouseUpHandler, addPlayerStateHandler, addPlayStateHandler, addToPlayerReadyCommandQueue, fireDebug, fireError, fireLoadingProgress, fireMediaInfoAvailable, firePlayerStateEvent, firePlayStateEvent, getVideoHeight, getVideoWidth, getWidgetFactory, isControllerVisible, isPlayerOnPage, isResizeToVideoSize, removeFromPlayerReadyCommandQueue, setControllerVisible, setResizeToVideoSize
 
Methods inherited from class com.google.gwt.user.client.ui.Composite
getWidget, isAttached, onAttach, onBrowserEvent, onDetach, setWidget
 
Methods inherited from class com.google.gwt.user.client.ui.Widget
addAttachHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getHandlerCount, getLayoutData, getParent, isOrWasAttached, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents
 
Methods inherited from class com.google.gwt.user.client.ui.UIObject
addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, toString, unsinkEvents
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.google.gwt.event.shared.HasHandlers
fireEvent
 

Field Detail

logger

protected final Logger logger
The Logger widget attached to this player

Constructor Detail

CustomAudioPlayer

public CustomAudioPlayer(Plugin playerPlugin,
                         java.lang.String mediaURL,
                         boolean autoplay,
                         java.lang.String height,
                         java.lang.String width)
                  throws PluginNotFoundException,
                         PluginVersionException,
                         LoadException
Constructs CustomAudioPlayer with the specified height and width which uses the specified playerPlugin to playback media located at mediaURL. Media playback begins automatically if autoplay is true.

Parameters:
playerPlugin - the plugin to use for playback.
mediaURL - the URL of the media to playback
autoplay - true to start playing automatically, false otherwise
height - the height of the player
width - the width of the player.
Throws:
LoadException - if an error occurs while loading the media.
PluginVersionException - if the required player plugin version is not installed on the client.
PluginNotFoundException - if the player plugin is not installed on the client.
See Also:
Plugin, QuickTimePlayer, WinMediaPlayer, FlashMediaPlayer
Method Detail

initWidget

protected final void initWidget(com.google.gwt.user.client.ui.Widget widget)
Overridden to prevent subclasses from changing the wrapped widget. Subclass should call setPlayerControlWidget instead.

Overrides:
initWidget in class com.google.gwt.user.client.ui.Composite
See Also:
setPlayerControlWidget(com.google.gwt.user.client.ui.Widget)

setPlayerControlWidget

protected final void setPlayerControlWidget(com.google.gwt.user.client.ui.Widget widget)
Sets the widget that will be used to control the player plugin.

Subclasses should call this method before calling any method that targets this widget.

Parameters:
widget - the player control widget

getMediaDuration

public long getMediaDuration()
Description copied from class: AbstractMediaPlayer
Returns the duration of the loaded media in milliseconds. An IllegalStateException is thrown is the player is not available

Specified by:
getMediaDuration in class AbstractMediaPlayer
Returns:
the duration of the loaded media in milliseconds.

getPlayPosition

public double getPlayPosition()
Description copied from class: AbstractMediaPlayer
Gets the current position in the media that is being played.

Specified by:
getPlayPosition in class AbstractMediaPlayer
Returns:
the current position of the media being played.

setPlayPosition

public void setPlayPosition(double position)
Description copied from class: AbstractMediaPlayer
Sets the playback position of the current media

Specified by:
setPlayPosition in class AbstractMediaPlayer
Parameters:
position - the new position from where to start playback

loadMedia

public void loadMedia(java.lang.String mediaURL)
               throws LoadException
Description copied from class: AbstractMediaPlayer
Loads the media at the specified URL into the player.

In respect of the same domain policy of some plugins, the URL should point to a destination on the same domain where the application is hosted.

Specified by:
loadMedia in class AbstractMediaPlayer
Parameters:
mediaURL - the URL of the media to load into the player.
Throws:
LoadException - if an error occurs while loading the media

pauseMedia

public void pauseMedia()
Description copied from class: AbstractMediaPlayer
Pause the media playback

Specified by:
pauseMedia in class AbstractMediaPlayer

playMedia

public void playMedia()
               throws PlayException
Description copied from class: AbstractMediaPlayer
Plays the media loaded into the player.

Specified by:
playMedia in class AbstractMediaPlayer
Throws:
PlayException - if an error occurs during media playback.

stopMedia

public void stopMedia()
Description copied from class: AbstractMediaPlayer
Stops the media playback.

Specified by:
stopMedia in class AbstractMediaPlayer

getVolume

public double getVolume()
Description copied from class: AbstractMediaPlayer
Gets the volume ranging from 0 (silent) to 1 (full volume).

Specified by:
getVolume in class AbstractMediaPlayer
Returns:
volume.

setVolume

public void setVolume(double volume)
Description copied from class: AbstractMediaPlayer
Sets the volume.

Specified by:
setVolume in class AbstractMediaPlayer
Parameters:
volume - 0 (silent) to 1 (full volume).

getLoopCount

public int getLoopCount()
Returns the remaining number of times this player loops playback before stopping.

Overrides:
getLoopCount in class AbstractMediaPlayer
Returns:
the number of times this player will repeat playback before stopping.

setLoopCount

public void setLoopCount(int loop)
Sets the number of times the current media file should loop playback before stopping.

Overrides:
setLoopCount in class AbstractMediaPlayer
Parameters:
loop - number of times to repeat playback. A negative value makes playback repeat forever!.

showLogger

public void showLogger(boolean show)
Description copied from class: AbstractMediaPlayer
Displays or hides the players' logger widget. The logger widget logs debug messages which can be useful during development.

Overrides:
showLogger in class AbstractMediaPlayer
Parameters:
show - true to make the logger widget visible, false otherwise.
See Also:
Logger

addToPlaylist

public void addToPlaylist(java.lang.String mediaURL)
Description copied from interface: PlaylistSupport
Adds the media at the specified URL to the players' playlist.

In respect of the same domain policy of some plugins/browsers, the URL should point to a destination on the same domain where the application is hosted.

Specified by:
addToPlaylist in interface PlaylistSupport
Parameters:
mediaURL - the URL of the media.

addToPlaylist

public void addToPlaylist(MRL mediaLocator)
Description copied from interface: PlaylistSupport
Adds the media locator to the players' playlist.

Specified by:
addToPlaylist in interface PlaylistSupport
Parameters:
mediaLocator - specifies alternative URLs of the same media

addToPlaylist

public void addToPlaylist(java.lang.String... mediaURLs)
Description copied from interface: PlaylistSupport
Adds the media at the specified URLs to the players' playlist.

The player chooses ONLY ONE of the mediaURLs it supports.

In respect of the same domain policy of some browsers, the URLs should point to a destination on the same domain where the application is hosted.

Specified by:
addToPlaylist in interface PlaylistSupport
Parameters:
mediaURLs - the alternative URLs of the same media (probably in different formats).

addToPlaylist

public void addToPlaylist(java.util.List<MRL> mediaLocators)
Description copied from interface: PlaylistSupport
Adds the media locators to the players' playlist.

Specified by:
addToPlaylist in interface PlaylistSupport
Parameters:
mediaLocators - list of alternative URLs of the same media

isShuffleEnabled

public boolean isShuffleEnabled()
Description copied from interface: PlaylistSupport
Checks if this player is in shuffle mode.

Specified by:
isShuffleEnabled in interface PlaylistSupport
Returns:
true if player is in shuffle mode, false otherwise.

removeFromPlaylist

public void removeFromPlaylist(int index)
Description copied from interface: PlaylistSupport
Removes the entry at the specified index from the players' playlist.

Specified by:
removeFromPlaylist in interface PlaylistSupport
Parameters:
index - the index of the playlist entry.

setShuffleEnabled

public void setShuffleEnabled(boolean enable)
Description copied from interface: PlaylistSupport
Enables or disables players' shuffle mode.

Specified by:
setShuffleEnabled in interface PlaylistSupport
Parameters:
enable - true to enable shuffle, false otherwise

clearPlaylist

public void clearPlaylist()
Description copied from interface: PlaylistSupport
Removes all entries in the players' playlist

Specified by:
clearPlaylist in interface PlaylistSupport

getPlaylistSize

public int getPlaylistSize()
Description copied from interface: PlaylistSupport
Returns the number of entries in the playlist

Specified by:
getPlaylistSize in interface PlaylistSupport
Returns:
number of entries in the playlist

play

public void play(int index)
          throws java.lang.IndexOutOfBoundsException
Description copied from interface: PlaylistSupport
Play playlist entry at the specified index

Specified by:
play in interface PlaylistSupport
Parameters:
index - number of the playlist entry
Throws:
java.lang.IndexOutOfBoundsException - if index is outside the bounds of the playlist

playNext

public void playNext()
              throws PlayException
Description copied from interface: PlaylistSupport
Plays the next item in the playlist

Specified by:
playNext in interface PlaylistSupport
Throws:
PlayException - if there are no more entries in the playlist to be played. Especially if we've advanced to the end of the playlist. Note: A player with a negative loop count (i.e. set to play forever!) may not throw this exception

playPrevious

public void playPrevious()
                  throws PlayException
Description copied from interface: PlaylistSupport
Plays the previous item in the playlist

Specified by:
playPrevious in interface PlaylistSupport
Throws:
PlayException - if there are no more entries in the playlist to be played. Especially if we've gotten to the beginning of the playlist. Note: A player with a negative loop count (i.e. set to play forever!) may not throw this exception

getRate

public double getRate()
Description copied from class: AbstractMediaPlayer
Returns the current playback rate

Overrides:
getRate in class AbstractMediaPlayer
Returns:
the playback rate
See Also:
AbstractMediaPlayer.setRate(double)

getRepeatMode

public RepeatMode getRepeatMode()
Description copied from class: AbstractMediaPlayer
Returns the current playback repeat mode

Overrides:
getRepeatMode in class AbstractMediaPlayer
Returns:
repeat mode
See Also:
RepeatMode

setConfigParameter

public <T extends ConfigValue> void setConfigParameter(ConfigParameter param,
                                                       T value)
Description copied from class: AbstractMediaPlayer
Sets the specified player parameter to the specified value IF AND ONLY IF the parameter is applicable on the player

Note: The parameter-value pairs are applied as HTML param tags on the underlying player plugin, therefore this method should be called before adding this player to a panel otherwise the method call will have no effect.

Overriding in a subclass

This method should be called first by any subclass that overrides it. This implementation checks if the specified value is a valid type for the specified parameter.

Overrides:
setConfigParameter in class AbstractMediaPlayer
Type Parameters:
T - the paramter value type
Parameters:
param - the configuration parameter
value - the parameter value

setConfigParameter

public void setConfigParameter(ConfigParameter param,
                               java.lang.Number value)
Description copied from class: AbstractMediaPlayer
Sets the specified player parameter to the specified value IF AND ONLY IF the parameter is applicable on the player

Overriding in a subclass

This method should be called first by any subclass that overrides it. This implementation checks if the specified value is a valid type for the specified parameter.

Overrides:
setConfigParameter in class AbstractMediaPlayer
Parameters:
param - the configuration parameter
value - the numeric value
See Also:
AbstractMediaPlayer.setConfigParameter(ConfigParameter, ConfigValue)

setConfigParameter

public void setConfigParameter(ConfigParameter param,
                               java.lang.String value)
Description copied from class: AbstractMediaPlayer
Sets the specified player parameter to the specified value IF AND ONLY IF the parameter is applicable on the player

Overriding in a subclass

This method should be called first by any subclass that overrides it. This implementation checks if the specified value is a valid type for the specified parameter.

Overrides:
setConfigParameter in class AbstractMediaPlayer
Parameters:
param - the configuration parameter
value - the String value
See Also:
AbstractMediaPlayer.setConfigParameter(ConfigParameter, ConfigValue)

setRate

public void setRate(double rate)
Description copied from class: AbstractMediaPlayer
Sets the playback rate.

If this player is not available on the panel, this method call is added to the command-queue for later execution.

Overrides:
setRate in class AbstractMediaPlayer
Parameters:
rate - the playback rate. A rate of 1 implies normal playback rate, fractional values are slow motion, and values greater than one are fast-forward

setRepeatMode

public void setRepeatMode(RepeatMode mode)
Description copied from class: AbstractMediaPlayer
Puts the player in the specified repeat mode.

The effect of the specified mode depends on the AbstractMediaPlayer.setLoopCount(int) property as shown in the table:

Value of loopCount Value of repeatMode What it means?
Any value < 0 Sets repeatMode to RepeatMode.REPEAT_ALL Playlist is repeated continously
1 RepeatMode.REPEAT_OFF Entire playlist is played only once
RepeatMode.REPEAT_ONE The current playlist entry is repeated continously
RepeatMode.REPEAT_ALL Entire playlist is repeated continously
Any value > 1 RepeatMode.REPEAT_OFF The loopCount property is ignored, and the entire playlist is played only once
RepeatMode.REPEAT_ONE Player repeats each playlist entry for the number of times specified by loopCount and moves on the next until all entries are played and stops
RepeatMode.REPEAT_ALL Player repeats entire playlist for the number of times specified by loopCount and stops

Overrides:
setRepeatMode in class AbstractMediaPlayer
Parameters:
mode - the new repeat mode
See Also:
RepeatMode


Copyright © 2009-2011. All Rights Reserved.