com.bramosystems.oss.player.core.client.ui
Class VLCPlayer

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.ui.VLCPlayer
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

public class VLCPlayer
extends AbstractMediaPlayer
implements PlaylistSupport

Widget to embed VLC Media Player™ plugin.

Usage Example

 SimplePanel panel = new SimplePanel();   // create panel to hold the player
 Widget player = null;
 try {
      // create the player
      player = new VLCPlayer("www.example.com/mediafile.vob");
 } catch(LoadException e) {
      // catch loading exception and alert user
      Window.alert("An error occured while loading");
 } catch(PluginVersionException e) {
      // catch plugin version exception and alert user, possibly providing a link
      // to the plugin download page.
      player = new HTML(".. some nice message telling the user to download plugin first ..");
 } catch(PluginNotFoundException e) {
      // catch PluginNotFoundException and tell user to download plugin, possibly providing
      // a link to the plugin download page.
      player = new HTML(".. another kind of message telling the user to download plugin..");
 }

 panel.setWidget(player); // add player to panel.
 

Author:
Sikirulai Braheem

Nested Class Summary
static class VLCPlayer.AudioChannelMode
          An enum of Audio Channel modes for VLC Media Player™
 
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
 
Fields inherited from class com.google.gwt.user.client.ui.UIObject
DEBUG_ID_PREFIX
 
Constructor Summary
VLCPlayer(java.lang.String mediaURL)
          Constructs VLCPlayer to automatically playback media located at mediaURL using the default height of 20px and width of 100%.
VLCPlayer(java.lang.String mediaURL, boolean autoplay)
          Constructs VLCPlayer to playback media located at mediaURL using the default height of 20px and width of 100%.
VLCPlayer(java.lang.String mediaURL, boolean autoplay, java.lang.String height, java.lang.String width)
          Constructs VLCPlayer with the specified height and width 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
 VLCPlayer.AudioChannelMode getAudioChannelMode()
          Gets the current audio channel mode of the player
 int getLoopCount()
          Returns the number of times this player repeats 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
 int getVideoHeight()
          Returns the height of the current media
 int getVideoWidth()
          Returns the width of the current media
 double getVolume()
          Gets the volume ranging from 0 (silent) to 1 (full volume).
 boolean isControllerVisible()
          Checks whether the player controls are visible.
 boolean isResizeToVideoSize()
          Checks if player is set to adjust its size to match the dimensions of a video.
 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.
protected  void onLoad()
          Overridden to register player for plugin events
protected  void onUnload()
          Overridden to release resources
 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 setAudioChannelMode(VLCPlayer.AudioChannelMode mode)
          Sets the audio channel mode of the player
 void setControllerVisible(boolean show)
          Displays or hides the player controls.
 void setLoopCount(int loop)
          Sets the number of times the current media file should repeat playback before stopping.
 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 setResizeToVideoSize(boolean resize)
          If the current media is a video, sets the player to adjust its size to match the dimensions of the video
 void setShuffleEnabled(boolean enable)
          Enables or disables players' shuffle mode.
 void setVolume(double volume)
          Sets the volume.
 void showLogger(boolean enable)
          Displays or hides the players' logger widget.
 void stopMedia()
          Stops the media playback.
 void toggleFullScreen()
           
 
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, getWidgetFactory, isPlayerOnPage, removeFromPlayerReadyCommandQueue, setConfigParameter, setConfigParameter, setConfigParameter
 
Methods inherited from class com.google.gwt.user.client.ui.Composite
getWidget, initWidget, 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, 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
 

Constructor Detail

VLCPlayer

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

height and width are specified as CSS units. A value of null for height or width puts the player in embedded mode. When in embedded mode, the player is made invisible on the page and media state events are propagated to registered listeners only. This is desired especially when used with custom sound controls. For custom video control, specify valid CSS values for height and width but hide the player controls with setControllerVisible(false).

Parameters:
mediaURL - the URL of the media to playback
autoplay - true to play 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 VLCPlayer plugin version is not installed on the client.
PluginNotFoundException - if the VLCPlayer plugin is not installed on the client.

VLCPlayer

public VLCPlayer(java.lang.String mediaURL)
          throws LoadException,
                 PluginVersionException,
                 PluginNotFoundException
Constructs VLCPlayer to automatically playback media located at mediaURL using the default height of 20px and width of 100%.

Parameters:
mediaURL - the URL of the media to playback
Throws:
LoadException - if an error occurs while loading the media.
PluginVersionException - if the required VLCPlayer plugin version is not installed on the client.
PluginNotFoundException - if the VLCPlayer plugin is not installed on the client.

VLCPlayer

public VLCPlayer(java.lang.String mediaURL,
                 boolean autoplay)
          throws LoadException,
                 PluginVersionException,
                 PluginNotFoundException
Constructs VLCPlayer to playback media located at mediaURL using the default height of 20px and width of 100%. Media playback begins automatically if autoplay is true.

Parameters:
mediaURL - the URL of the media to playback
autoplay - true to play playing automatically, false otherwise
Throws:
LoadException - if an error occurs while loading the media.
PluginVersionException - if the required VLCPlayer plugin version is not installed on the client.
PluginNotFoundException - if the VLCPlayer plugin is not installed on the client.
Method Detail

onLoad

protected final void onLoad()
Overridden to register player for plugin events

Overrides:
onLoad in class com.google.gwt.user.client.ui.Widget

onUnload

protected void onUnload()
Overridden to release resources

Overrides:
onUnload in class com.google.gwt.user.client.ui.Widget

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

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.

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

stopMedia

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

Specified by:
stopMedia in class AbstractMediaPlayer

pauseMedia

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

Specified by:
pauseMedia in class AbstractMediaPlayer

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

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).

showLogger

public void showLogger(boolean enable)
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:
enable - true to make the logger widget visible, false otherwise.
See Also:
Logger

setControllerVisible

public void setControllerVisible(boolean show)
Description copied from class: AbstractMediaPlayer
Displays or hides the player controls. This implementation does nothing. Subclasses that permit showing/hiding of controls should override this method and implement accordingly.

Overrides:
setControllerVisible in class AbstractMediaPlayer
Parameters:
show - true to make the player controls visible, false otherwise.

isControllerVisible

public boolean isControllerVisible()
Description copied from class: AbstractMediaPlayer
Checks whether the player controls are visible. This implementation return true. Subclasses that permit showing/hiding of controls should override this method and implement accordingly.

Overrides:
isControllerVisible in class AbstractMediaPlayer
Returns:
true if player controls are visible, false otherwise.

getLoopCount

public int getLoopCount()
Description copied from class: AbstractMediaPlayer
Returns the number of times this player repeats playback before stopping. This implementation returns 0, subclasses should override and implement accordingly.

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 repeat playback before stopping.

As of version 1.0, if this player is not available on the panel, this method call is added to the command-queue for later execution.

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

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.

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

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.

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

setAudioChannelMode

public void setAudioChannelMode(VLCPlayer.AudioChannelMode mode)
Sets the audio channel mode of the player

Use getAudioChannelMode() to check if setting of the audio channel is succeessful

Parameters:
mode - the audio channel mode
See Also:
getAudioChannelMode()

getAudioChannelMode

public VLCPlayer.AudioChannelMode getAudioChannelMode()
Gets the current audio channel mode of the player

Returns:
the current mode of the audio channel
See Also:
setAudioChannelMode(AudioChannelMode)

getVideoHeight

public int getVideoHeight()
Description copied from class: AbstractMediaPlayer
Returns the height of the current media

Overrides:
getVideoHeight in class AbstractMediaPlayer
Returns:
the height in pixels

getVideoWidth

public int getVideoWidth()
Description copied from class: AbstractMediaPlayer
Returns the width of the current media

Overrides:
getVideoWidth in class AbstractMediaPlayer
Returns:
the width in pixels

toggleFullScreen

public void toggleFullScreen()

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

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)

setResizeToVideoSize

public void setResizeToVideoSize(boolean resize)
Description copied from class: AbstractMediaPlayer
If the current media is a video, sets the player to adjust its size to match the dimensions of the video

Overrides:
setResizeToVideoSize in class AbstractMediaPlayer
Parameters:
resize - true if player should adjust its size, false otherwise

isResizeToVideoSize

public boolean isResizeToVideoSize()
Description copied from class: AbstractMediaPlayer
Checks if player is set to adjust its size to match the dimensions of a video.

Overrides:
isResizeToVideoSize in class AbstractMediaPlayer
Returns:
true if player adjusts its size, false otherwise

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

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.