com.google.gwt.media.client

## Class MediaBase

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.google.gwt.user.client.ui.FocusWidget
      - - com.google.gwt.media.client.MediaBase

All Implemented Interfaces:
  HasAllDragAndDropHandlers, HasAllFocusHandlers, HasAllGestureHandlers, HasAllKeyHandlers, HasAllMediaHandlers, HasAllMouseHandlers, HasAllTouchHandlers, HasBlurHandlers, HasCanPlayThroughHandlers, HasClickHandlers, HasDoubleClickHandlers, HasDragEndHandlers, HasDragEnterHandlers, HasDragHandlers, HasDragLeaveHandlers, HasDragOverHandlers, HasDragStartHandlers, HasDropHandlers, HasEndedHandlers, HasFocusHandlers, HasGestureChangeHandlers, HasGestureEndHandlers, HasGestureStartHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasKeyUpHandlers, HasLoadedMetadataHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasProgressHandlers, HasTouchCancelHandlers, HasTouchEndHandlers, HasTouchMoveHandlers, HasTouchStartHandlers, HasAttachHandlers, HasHandlers, EventListener, Focusable, HasEnabled, HasFocus, HasVisibility, IsWidget, SourcesClickEvents, SourcesFocusEvents, SourcesKeyboardEvents, SourcesMouseEvents

Direct Known Subclasses:
  Audio, Video

    public abstract class MediaBase
    extends FocusWidget
    implements HasAllMediaHandlers

A widget representing a media element.

Experimental API: This API is still under development and is subject to change.

### Nested Class Summary

### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

`UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

### Field Summary

### Fields inherited from class com.google.gwt.user.client.ui.UIObject

`DEBUG_ID_PREFIX`

### Constructor Summary

Constructors
`protected` `MediaBase(MediaElement element)` Protected constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`HandlerRegistration` `addCanPlayThroughHandler(CanPlayThroughHandler handler)` Adds a `CanPlayThroughEvent` handler.
`HandlerRegistration` `addEndedHandler(EndedHandler handler)` Adds a `EndedEvent` handler.
`HandlerRegistration` `addLoadedMetadataHandler(LoadedMetadataHandler handler)` Adds a `LoadedMetadataEvent` handler.
`HandlerRegistration` `addProgressHandler(ProgressHandler handler)` Adds a `ProgressEvent` handler.
`SourceElement` `addSource(java.lang.String url)` Add a source element to this media.
`SourceElement` `addSource(java.lang.String url, java.lang.String type)` Add a source element to this media, specifying the type (format) of the media.
`java.lang.String` `canPlayType(java.lang.String type)` Returns `true` if the native player is capable of playing content of the given MIME type.
`TimeRanges` `getBuffered()` Returns a `TimeRanges` object indicating which portions of the source have been buffered locally.
`java.lang.String` `getCurrentSrc()` Returns the URL of the current media source, or the empty String if no source is set.
`double` `getCurrentTime()` Returns the current time within the source media stream.
`double` `getDefaultPlaybackRate()` Returns the default playback rate, where 1.0 corresponds to normal playback.
`double` `getDuration()` Returns the duration of the source media stream, in seconds.
`MediaError` `getError()` Returns the type of error that has occurred while attempting to load and play the media.
`double` `getInitialTime()` Returns the time to which the media stream was seeked at the time it was loaded, in seconds, or 0.0 if the position is unknown.
`MediaElement` `getMediaElement()` Returns the attached Media Element.
`int` `getNetworkState()` Returns the network state, one of `MediaElement.NETWORK_EMPTY`, `MediaElement.NETWORK_IDLE`, `MediaElement.NETWORK_LOADING`, or `MediaElement.NETWORK_NO_SOURCE`.
`double` `getPlaybackRate()` Returns the playback rate, where 1.0 corresponds to normal playback.
`TimeRanges` `getPlayed()` Returns a `TimeRanges` object indicating which portions of the source have been played.
`java.lang.String` `getPreload()` Returns the preload setting, one of `MediaElement.PRELOAD_AUTO`, `MediaElement.PRELOAD_METADATA`, or `MediaElement.PRELOAD_NONE`.
`int` `getReadyState()` Returns the current state of the media with respect to rendering the current playback position, as one of the constants `MediaElement.HAVE_CURRENT_DATA`, `MediaElement.HAVE_ENOUGH_DATA`, `MediaElement.HAVE_FUTURE_DATA`, `MediaElement.HAVE_METADATA`, or `MediaElement.HAVE_NOTHING` .
`TimeRanges` `getSeekable()` Returns a `TimeRanges` object indicating which portions of the source are seekable.
`java.lang.String` `getSrc()` Returns the source URL for the media, or `null` if none is set.
`double` `getStartOffsetTime()` Returns the time corresponding to the zero time in the media timeline, measured in seconds since midnight, January 1 1970 UTC, or `Double.NaN` if none is specified.
`double` `getVolume()` Returns the current audio volume setting for the media, as a number between 0.0 and 1.0.
`boolean` `hasControls()` Returns `true` if the media player should display interactive controls (for example, to control play/pause, seek position, and volume), `false` otherwise.
`boolean` `hasEnded()` Returns `true` if playback has reached the end of the media, `false` otherwise.
`boolean` `isAutoplay()` Returns `true` if autoplay is enabled, `false` otherwise.
`boolean` `isLoop()` Returns `true` if the user agent is to seek back to the start of the media once playing has ended, `false` otherwise.
`boolean` `isMuted()` Returns `true` if the volume is to be muted (overriding the normal volume setting), `false` otherwise.
`boolean` `isPaused()` Returns `true` if playback is paused, `false` otherwise.
`boolean` `isSeeking()` Returns `true` if the playback position is in the process of changing discontinuously, e.g., by use of the interactive controls, `false` otherwise.
`void` `load()` Causes the resource to be loaded.
`void` `pause()` Causes playback of the resource to be paused.
`void` `play()` Causes playback of the resource to be started or resumed.
`void` `removeSource(SourceElement source)` Remove the specified `SourceElement` from this media.
`void` `setAutoplay(boolean autoplay)` Enables or disables autoplay of the resource.
`void` `setControls(boolean controls)` Enables or disables interactive controls.
`void` `setCurrentTime(double time)` Sets the current playback time within the media stream, in seconds.
`void` `setDefaultPlaybackRate(double rate)` Sets the default playback rate.
`void` `setLoop(boolean loop)` Enables or disables looping.
`void` `setMuted(boolean muted)` Enables or disables muting.
`void` `setPlaybackRate(double rate)` Sets the playback rate.
`void` `setPreload(java.lang.String preload)` Changes the preload setting to one of `MediaElement.PRELOAD_AUTO`, `MediaElement.PRELOAD_METADATA`, or `MediaElement.PRELOAD_NONE`.
`void` `setSrc(java.lang.String url)` Sets the source URL for the media.
`void` `setVolume(double volume)` Sets the playback volume.

### Methods inherited from class com.google.gwt.user.client.ui.FocusWidget

`addBlurHandler, addClickHandler, addClickListener, addDoubleClickHandler, addDragEndHandler, addDragEnterHandler, addDragHandler, addDragLeaveHandler, addDragOverHandler, addDragStartHandler, addDropHandler, addFocusHandler, addFocusListener, addGestureChangeHandler, addGestureEndHandler, addGestureStartHandler, addKeyboardListener, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, addMouseDownHandler, addMouseListener, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseUpHandler, addMouseWheelHandler, addMouseWheelListener, addTouchCancelHandler, addTouchEndHandler, addTouchMoveHandler, addTouchStartHandler, getFocusImpl, getTabIndex, isEnabled, onAttach, removeClickListener, removeFocusListener, removeKeyboardListener, removeMouseListener, removeMouseWheelListener, setAccessKey, setEnabled, setFocus, setTabIndex`

### Methods inherited from class com.google.gwt.user.client.ui.Widget

`addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getHandlerCount, getLayoutData, getParent, isAttached, isOrWasAttached, onBrowserEvent, onDetach, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents, unsinkEvents`

### 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, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString`

### 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

#### MediaBase

    protected MediaBase(MediaElement element)

Protected constructor.

### Method Detail

#### addCanPlayThroughHandler

    public HandlerRegistration addCanPlayThroughHandler(CanPlayThroughHandler handler)

Description copied from interface: `HasCanPlayThroughHandlers`
Adds a `CanPlayThroughEvent` handler.

Specified by:
  `addCanPlayThroughHandler` in interface `HasCanPlayThroughHandlers`
Parameters:
  `handler` - the media CanPlayThrough handler
Returns:
  `HandlerRegistration` used to remove this handler

#### addEndedHandler

    public HandlerRegistration addEndedHandler(EndedHandler handler)

Description copied from interface: `HasEndedHandlers`
Adds a `EndedEvent` handler.

Specified by:
  `addEndedHandler` in interface `HasEndedHandlers`
Parameters:
  `handler` - the media ended handler
Returns:
  `HandlerRegistration` used to remove this handler

#### addProgressHandler

    public HandlerRegistration addProgressHandler(ProgressHandler handler)

Description copied from interface: `HasProgressHandlers`
Adds a `ProgressEvent` handler.

Specified by:
  `addProgressHandler` in interface `HasProgressHandlers`
Parameters:
  `handler` - the media progress handler
Returns:
  `HandlerRegistration` used to remove this handler

#### addLoadedMetadataHandler

    public HandlerRegistration addLoadedMetadataHandler(LoadedMetadataHandler handler)

Description copied from interface: `HasLoadedMetadataHandlers`
Adds a `LoadedMetadataEvent` handler.

Specified by:
  `addLoadedMetadataHandler` in interface `HasLoadedMetadataHandlers`
Parameters:
  `handler` - the media loadedmetadata handler
Returns:
  `HandlerRegistration` used to remove this handler

#### addSource

    public SourceElement addSource(java.lang.String url)

Add a source element to this media. The browser will request source files from the server until it finds one it can play.

Only use this method if you do not know the type of the source file, as the browser cannot determine the format from the filename and must download each source until a compatible one is found. Instead, you should specify the type for the media using `addSource(String, String)` so the browser can choose a source file without downloading the file.

Parameters:
  `url` - a String URL
See Also:
  `addSource(String, String)`

#### addSource

    public SourceElement addSource(java.lang.String url,
                                   java.lang.String type)

Add a source element to this media, specifying the type (format) of the media. The browser will choose a supported source file and download it.

The type is the format or encoding of the media represented by the source element. For example, the type of an `AudioElement` could be one of "audio/ogg", `AudioElement.TYPE_MP3`, or `AudioElement.TYPE_WAV`.

You can also add the codec information to the type, giving the browser even more information about whether or not it can play the file (Example: " `audio/ogg; codec=vorbis`");

Parameters:
  `url` - a String URL
  `type` - the type (format) of the media
See Also:
  `getSrc()`

#### canPlayType

    public java.lang.String canPlayType(java.lang.String type)

Returns `true` if the native player is capable of playing content of the given MIME type.

Parameters:
  `type` - a String representing a MIME type
Returns:
  one of `MediaElement.CAN_PLAY_PROBABLY`, `MediaElement.CAN_PLAY_MAYBE`, or `MediaElement.CANNOT_PLAY`

#### getBuffered

    public TimeRanges getBuffered()

Returns a `TimeRanges` object indicating which portions of the source have been buffered locally.

Returns:
  a `TimeRanges` instance, or `null`.

#### getCurrentSrc

    public java.lang.String getCurrentSrc()

Returns the URL of the current media source, or the empty String if no source is set.

Returns:
  a String URL

#### getCurrentTime

    public double getCurrentTime()

Returns the current time within the source media stream.

Returns:
  the time, in seconds, as a double
See Also:
  `setCurrentTime(double)`

#### getDefaultPlaybackRate

    public double getDefaultPlaybackRate()

Returns the default playback rate, where 1.0 corresponds to normal playback. If no rate has been set, 1.0 is returned.

Returns:
  the current default playback rate, or 1.0 if it has not been set
See Also:
  `setDefaultPlaybackRate(double)`

#### getDuration

    public double getDuration()

Returns the duration of the source media stream, in seconds. If the duration is unknown, `Double.NaN` is returned. For unbounded media streams, `Double.POSITIVE_INFINITY` is returned.

Returns:
  a positive duration in seconds, NaN, or Infinity

#### getError

    public MediaError getError()

Returns the type of error that has occurred while attempting to load and play the media. If no error has occurred, `null` is returned.

Returns:
  a `MediaError` instance, or `null`

#### getInitialTime

    public double getInitialTime()

Returns the time to which the media stream was seeked at the time it was loaded, in seconds, or 0.0 if the position is unknown.

Returns:
  the initial time, or 0.0 if unknown

#### getMediaElement

    public MediaElement getMediaElement()

Returns the attached Media Element.

Returns:
  the Media Element

#### getNetworkState

    public int getNetworkState()

Returns the network state, one of `MediaElement.NETWORK_EMPTY`, `MediaElement.NETWORK_IDLE`, `MediaElement.NETWORK_LOADING`, or `MediaElement.NETWORK_NO_SOURCE`.

Returns:
  an integer constant indicating the network state
See Also:
  `MediaElement.NETWORK_EMPTY`, `MediaElement.NETWORK_IDLE`, `MediaElement.NETWORK_LOADING`, `MediaElement.NETWORK_NO_SOURCE`

#### getPlaybackRate

    public double getPlaybackRate()

Returns the playback rate, where 1.0 corresponds to normal playback. If the rate has not been set, 1.0 is returned.

Returns:
  the playback rate, if known, otherwise 1.0
See Also:
  `setPlaybackRate(double)`

#### getPlayed

    public TimeRanges getPlayed()

Returns a `TimeRanges` object indicating which portions of the source have been played.

Returns:
  a `TimeRanges` instance, or `null`.

#### getPreload

    public java.lang.String getPreload()

Returns the preload setting, one of `MediaElement.PRELOAD_AUTO`, `MediaElement.PRELOAD_METADATA`, or `MediaElement.PRELOAD_NONE`.

Returns:
  the preload setting
See Also:
  `setPreload(String)`, `MediaElement.PRELOAD_AUTO`, `MediaElement.PRELOAD_METADATA`, `MediaElement.PRELOAD_NONE`

#### getReadyState

    public int getReadyState()

Returns the current state of the media with respect to rendering the current playback position, as one of the constants `MediaElement.HAVE_CURRENT_DATA`, `MediaElement.HAVE_ENOUGH_DATA`, `MediaElement.HAVE_FUTURE_DATA`, `MediaElement.HAVE_METADATA`, or `MediaElement.HAVE_NOTHING` .

Returns:
  an integer constant indicating the ready state
See Also:
  `MediaElement.HAVE_CURRENT_DATA`, `MediaElement.HAVE_ENOUGH_DATA`, `MediaElement.HAVE_FUTURE_DATA`, `MediaElement.HAVE_METADATA`, `MediaElement.HAVE_NOTHING`

#### getSeekable

    public TimeRanges getSeekable()

Returns a `TimeRanges` object indicating which portions of the source are seekable.

Returns:
  a `TimeRanges` instance, or `null`.

#### getSrc

    public java.lang.String getSrc()

Returns the source URL for the media, or `null` if none is set.

Returns:
  a String URL or `null`
See Also:
  `setSrc(String)`

#### getStartOffsetTime

    public double getStartOffsetTime()

Returns the time corresponding to the zero time in the media timeline, measured in seconds since midnight, January 1 1970 UTC, or `Double.NaN` if none is specified.

Returns:
  the start time

#### getVolume

    public double getVolume()

Returns the current audio volume setting for the media, as a number between 0.0 and 1.0.

Returns:
  a number between 0.0 (silent) and 1.0 (loudest)
See Also:
  `setVolume(double)`

#### hasControls

    public boolean hasControls()

Returns `true` if the media player should display interactive controls (for example, to control play/pause, seek position, and volume), `false` otherwise.

Returns:
  whether controls should be displayed
See Also:
  `setControls(boolean)`

#### hasEnded

    public boolean hasEnded()

Returns `true` if playback has reached the end of the media, `false` otherwise.

Returns:
  whether playback has ended

#### isAutoplay

    public boolean isAutoplay()

Returns `true` if autoplay is enabled, `false` otherwise. When autoplay is enabled, the user agent will begin playback automatically as soon as it can do so without stopping.

Returns:
  the autoplay setting
See Also:
  `setAutoplay(boolean)`

#### isLoop

    public boolean isLoop()

Returns `true` if the user agent is to seek back to the start of the media once playing has ended, `false` otherwise.

Returns:
  the loop setting
See Also:
  `setLoop(boolean)`

#### isMuted

    public boolean isMuted()

Returns `true` if the volume is to be muted (overriding the normal volume setting), `false` otherwise.

Returns:
  the muting setting
See Also:
  `setMuted(boolean)`, `getVolume()`, `setVolume(double)`

#### isPaused

    public boolean isPaused()

Returns `true` if playback is paused, `false` otherwise.

Returns:
  the paused setting
See Also:
  `pause()`, `play()`

#### isSeeking

    public boolean isSeeking()

Returns `true` if the playback position is in the process of changing discontinuously, e.g., by use of the interactive controls, `false` otherwise.

Returns:
  the seeking status
See Also:
  `setControls(boolean)`, `hasControls()`

#### load

    public void load()

Causes the resource to be loaded.

#### pause

    public void pause()

Causes playback of the resource to be paused.

#### play

    public void play()

Causes playback of the resource to be started or resumed.

#### removeSource

    public void removeSource(SourceElement source)

Remove the specified `SourceElement` from this media. If the source element is not a child of this widget, it will not be removed.

Parameters:
  `source` - the source element to remove
See Also:
  `addSource(String, String)`

#### setAutoplay

    public void setAutoplay(boolean autoplay)

Enables or disables autoplay of the resource.

Parameters:
  `autoplay` - if `true`, enable autoplay
See Also:
  `isAutoplay()`

#### setControls

    public void setControls(boolean controls)

Enables or disables interactive controls.

Parameters:
  `controls` - if `true`, enable controls
See Also:
  `hasControls()`

#### setCurrentTime

    public void setCurrentTime(double time)

Sets the current playback time within the media stream, in seconds.

Parameters:
  `time` - a number within the ranges given by `getSeekable()`
See Also:
  `getCurrentTime()`

#### setDefaultPlaybackRate

    public void setDefaultPlaybackRate(double rate)

Sets the default playback rate.

Parameters:
  `rate` - a double value
See Also:
  `getDefaultPlaybackRate()`

#### setLoop

    public final void setLoop(boolean loop)

Enables or disables looping.

Parameters:
  `loop` - if `true`, enable looping
See Also:
  `isLoop()`

#### setMuted

    public void setMuted(boolean muted)

Enables or disables muting.

Parameters:
  `muted` - if `true`, enable muting
See Also:
  `isMuted()`

#### setPlaybackRate

    public void setPlaybackRate(double rate)

Sets the playback rate.

Parameters:
  `rate` - a double value
See Also:
  `getPlaybackRate()`

#### setPreload

    public void setPreload(java.lang.String preload)

Changes the preload setting to one of `MediaElement.PRELOAD_AUTO`, `MediaElement.PRELOAD_METADATA`, or `MediaElement.PRELOAD_NONE`.

Parameters:
  `preload` - a String constants
See Also:
  `getPreload()`, `setPreload(String)`, `MediaElement.PRELOAD_AUTO`, `MediaElement.PRELOAD_METADATA`, `MediaElement.PRELOAD_NONE`

#### setSrc

    public void setSrc(java.lang.String url)

Sets the source URL for the media.

Support for different media types varies between browsers. Instead of using this method, you should encode your media in multiple formats and add all of them using `addSource(String, String)` so the browser can choose a source that it supports.

Parameters:
  `url` - a String URL
See Also:
  `getSrc()`, `addSource(String, String)`

#### setVolume

    public void setVolume(double volume)

Sets the playback volume.

Parameters:
  `volume` - a value between 0.0 (silent) and 1.0 (loudest)
See Also:
  `getVolume()`