public class EmbeddedMediaPlayerComponent extends Panel implements MediaPlayerEventListener
This component encapsulates a media player and an associated video surface suitable for embedding inside a graphical user interface.
Most implementation details, like creating a factory and connecting the various objects together, are encapsulated.
The default implementation will work out-of-the-box, but there are various template methods available to sub-classes to tailor the behaviour of the component.
This class implements the most the most common use-case for an embedded media player and is
intended to enable a developer to get quickly started with the vlcj framework. More advanced
applications are free to directly use the MediaPlayerFactory
, if required, as has always
been the case.
This component also implements the various media player listener interfaces, consequently an implementation sub-class can simply override those listener methods to handle events.
Applications can get a handle to the underlying media player object by invoking
getMediaPlayer()
.
To use, simply create an instance of this class and add it to a visual container component like a
JPanel
(or any other Container
).
For example, here a media player component is used directly as the content pane of a
JFrame
, and only two lines of code that use vlcj are required:
frame = new JFrame(); mediaPlayerComponent = new EmbeddedMediaPlayerComponent(); // <--- 1 frame.setContentPane(mediaPlayerComponent); frame.setSize(1050, 600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); mediaPlayerComponent.getMediaPlayer().playMedia(mrl); // <--- 2An example of a sub-class to tailor behaviours and override event handlers:
mediaPlayerComponent = new EmbeddedMediaPlayerComponent() { protected String[] onGetMediaPlayerFactoryArgs() { return new String[] {"--no-video-title-show"}; } protected FullScreenStrategy onGetFullScreenStrategy() { return new XFullScreenStrategy(frame); } public void videoOutputAvailable(MediaPlayer mediaPlayer, boolean videoOutput) { } public void error(MediaPlayer mediaPlayer) { } public void finished(MediaPlayer mediaPlayer) { } };When the media player component is no longer needed, it should be released by invoking the
release()
method.
Since the media player factory associated by this component may be created by this component itself or may be shared with some other media player resources it is the responsibility of the application to also release the media player factory at the appropriate time.
It is always a better strategy to reuse media player components, rather than repeatedly creating and destroying instances.
Component.BaselineResizeBehavior
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
EmbeddedMediaPlayerComponent()
Construct a media player component.
|
Modifier and Type | Method and Description |
---|---|
void |
backward(MediaPlayer mediaPlayer)
Media skipped backward.
|
void |
buffering(MediaPlayer mediaPlayer,
float newCache)
Buffering media.
|
void |
elementaryStreamAdded(MediaPlayer mediaPlayer,
int type,
int id)
An elementary stream was added.
|
void |
elementaryStreamDeleted(MediaPlayer mediaPlayer,
int type,
int id)
An elementary stream was deleted.
|
void |
elementaryStreamSelected(MediaPlayer mediaPlayer,
int type,
int id)
An elementary stream was selected.
|
void |
endOfSubItems(MediaPlayer mediaPlayer)
The end of the media sub-items was reached.
|
void |
error(MediaPlayer mediaPlayer)
An error occurred.
|
void |
finished(MediaPlayer mediaPlayer)
Media finished playing (i.e.
|
void |
forward(MediaPlayer mediaPlayer)
Media skipped forward.
|
EmbeddedMediaPlayer |
getMediaPlayer()
Get the embedded media player reference.
|
MediaPlayerFactory |
getMediaPlayerFactory()
Get the media player factory reference.
|
Canvas |
getVideoSurface()
Get the video surface
Canvas component. |
void |
lengthChanged(MediaPlayer mediaPlayer,
long newLength)
Media length changed.
|
void |
mediaChanged(MediaPlayer mediaPlayer,
libvlc_media_t media,
String mrl)
The media changed.
|
void |
mediaDurationChanged(MediaPlayer mediaPlayer,
long newDuration)
The current media duration changed.
|
void |
mediaFreed(MediaPlayer mediaPlayer)
The current media was freed.
|
void |
mediaMetaChanged(MediaPlayer mediaPlayer,
int metaType)
Current media meta data changed.
|
void |
mediaParsedChanged(MediaPlayer mediaPlayer,
int newStatus)
The current media parsed status changed.
|
void |
mediaStateChanged(MediaPlayer mediaPlayer,
int newState)
The current media state changed.
|
void |
mediaSubItemAdded(MediaPlayer mediaPlayer,
libvlc_media_t subItem)
A new sub-item was added to the current media.
|
void |
mediaSubItemTreeAdded(MediaPlayer mediaPlayer,
libvlc_media_t item)
A sub-item tree was added to the media.
|
void |
newMedia(MediaPlayer mediaPlayer)
New media was opened.
|
void |
opening(MediaPlayer mediaPlayer)
Opening the media.
|
void |
pausableChanged(MediaPlayer mediaPlayer,
int newSeekable)
Media pausable status changed.
|
void |
paused(MediaPlayer mediaPlayer)
Media paused.
|
void |
playing(MediaPlayer mediaPlayer)
The media started playing.
|
void |
positionChanged(MediaPlayer mediaPlayer,
float newPosition)
Media play-back position changed.
|
void |
release()
Release the media player component and the associated native media player resources.
|
void |
release(boolean releaseFactory)
Release the media player component and the associated media player factory.
|
void |
scrambledChanged(MediaPlayer mediaPlayer,
int newScrambled)
Program scrambled changed.
|
void |
seekableChanged(MediaPlayer mediaPlayer,
int newSeekable)
Media seekable status changed.
|
void |
setCursorEnabled(boolean enabled)
Enable or disable the mouse cursor when it is over the component.
|
void |
snapshotTaken(MediaPlayer mediaPlayer,
String filename)
A snapshot was taken.
|
void |
stopped(MediaPlayer mediaPlayer)
Media stopped.
|
void |
subItemFinished(MediaPlayer mediaPlayer,
int subItemIndex)
A sub-item finished playing.
|
void |
subItemPlayed(MediaPlayer mediaPlayer,
int subItemIndex)
A sub-item was played.
|
void |
timeChanged(MediaPlayer mediaPlayer,
long newTime)
Media play-back time changed.
|
void |
titleChanged(MediaPlayer mediaPlayer,
int newTitle)
Media title changed.
|
void |
videoOutput(MediaPlayer mediaPlayer,
int newCount)
The number of video outputs changed.
|
addNotify, getAccessibleContext
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, isValidateRoot, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, dispatchEvent, enable, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public EmbeddedMediaPlayerComponent()
public final MediaPlayerFactory getMediaPlayerFactory()
public final EmbeddedMediaPlayer getMediaPlayer()
An application uses this handle to control the media player, add listeners and so on.
public final Canvas getVideoSurface()
Canvas
component.
An application may want to add key/mouse listeners to the video surface component.
public final void setCursorEnabled(boolean enabled)
enabled
- true
to enable (show) the cursor; false
to disable (hide) itpublic final void release()
The associated media player factory will not be released, the client application is responsible for releasing the factory at the appropriate time.
public final void release(boolean releaseFactory)
Optionally release the media player factory.
This method invokes release()
, then depending on the value of the releaseFactory
parameter the associated factory will also be released.
releaseFactory
- true
if the factory should also be released; false
if it should notpublic void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl)
MediaPlayerEventListener
mediaChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventmedia
- new media instancemrl
- media resource locatorpublic void opening(MediaPlayer mediaPlayer)
MediaPlayerEventListener
opening
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void buffering(MediaPlayer mediaPlayer, float newCache)
MediaPlayerEventListener
buffering
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewCache
- percentage complete, ranging from 0.0 to 100.0public void playing(MediaPlayer mediaPlayer)
MediaPlayerEventListener
There is no guarantee that a video output has been created at this point.
playing
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void paused(MediaPlayer mediaPlayer)
MediaPlayerEventListener
paused
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void stopped(MediaPlayer mediaPlayer)
MediaPlayerEventListener
stopped
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void forward(MediaPlayer mediaPlayer)
MediaPlayerEventListener
forward
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void backward(MediaPlayer mediaPlayer)
MediaPlayerEventListener
backward
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void finished(MediaPlayer mediaPlayer)
MediaPlayerEventListener
finished
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void timeChanged(MediaPlayer mediaPlayer, long newTime)
MediaPlayerEventListener
timeChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewTime
- new timepublic void positionChanged(MediaPlayer mediaPlayer, float newPosition)
MediaPlayerEventListener
positionChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewPosition
- percentage between 0.0 and 1.0public void seekableChanged(MediaPlayer mediaPlayer, int newSeekable)
MediaPlayerEventListener
seekableChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewSeekable
- new seekable statuspublic void pausableChanged(MediaPlayer mediaPlayer, int newSeekable)
MediaPlayerEventListener
pausableChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewSeekable
- new pausable statuspublic void titleChanged(MediaPlayer mediaPlayer, int newTitle)
MediaPlayerEventListener
titleChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewTitle
- new titlepublic void snapshotTaken(MediaPlayer mediaPlayer, String filename)
MediaPlayerEventListener
snapshotTaken
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventfilename
- name of the file containing the snapshotpublic void lengthChanged(MediaPlayer mediaPlayer, long newLength)
MediaPlayerEventListener
lengthChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewLength
- new length (number of milliseconds)public void videoOutput(MediaPlayer mediaPlayer, int newCount)
MediaPlayerEventListener
videoOutput
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewCount
- new number of video outputspublic void scrambledChanged(MediaPlayer mediaPlayer, int newScrambled)
MediaPlayerEventListener
scrambledChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewScrambled
- new scrambled valuepublic void elementaryStreamAdded(MediaPlayer mediaPlayer, int type, int id)
MediaPlayerEventListener
elementaryStreamAdded
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventtype
- type of streamid
- identifier of streampublic void elementaryStreamDeleted(MediaPlayer mediaPlayer, int type, int id)
MediaPlayerEventListener
elementaryStreamDeleted
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventtype
- type of streamid
- identifier of streampublic void elementaryStreamSelected(MediaPlayer mediaPlayer, int type, int id)
MediaPlayerEventListener
elementaryStreamSelected
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventtype
- type of streamid
- identifier of streampublic void error(MediaPlayer mediaPlayer)
MediaPlayerEventListener
error
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void mediaMetaChanged(MediaPlayer mediaPlayer, int metaType)
MediaPlayerEventListener
mediaMetaChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventmetaType
- type of meta data that changedpublic void mediaSubItemAdded(MediaPlayer mediaPlayer, libvlc_media_t subItem)
MediaPlayerEventListener
mediaSubItemAdded
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventsubItem
- native sub-item handlepublic void mediaDurationChanged(MediaPlayer mediaPlayer, long newDuration)
MediaPlayerEventListener
mediaDurationChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewDuration
- new duration (number of milliseconds)public void mediaParsedChanged(MediaPlayer mediaPlayer, int newStatus)
MediaPlayerEventListener
mediaParsedChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewStatus
- new parsed statuspublic void mediaFreed(MediaPlayer mediaPlayer)
MediaPlayerEventListener
mediaFreed
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void mediaStateChanged(MediaPlayer mediaPlayer, int newState)
MediaPlayerEventListener
mediaStateChanged
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventnewState
- new statepublic void mediaSubItemTreeAdded(MediaPlayer mediaPlayer, libvlc_media_t item)
MediaPlayerEventListener
mediaSubItemTreeAdded
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventitem
- media itempublic void newMedia(MediaPlayer mediaPlayer)
MediaPlayerEventListener
This is raised only for the "main" media item and not for any sub-items.
newMedia
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventpublic void subItemPlayed(MediaPlayer mediaPlayer, int subItemIndex)
MediaPlayerEventListener
There is no guarantee the sub-item actually started, but it was at least attempted to be played.
subItemPlayed
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventsubItemIndex
- index of the sub-item that was playedpublic void subItemFinished(MediaPlayer mediaPlayer, int subItemIndex)
MediaPlayerEventListener
subItemFinished
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventsubItemIndex
- index of the sub-item that finished playingpublic void endOfSubItems(MediaPlayer mediaPlayer)
MediaPlayerEventListener
This event will not be raised if the sub-items are being repeated.
endOfSubItems
in interface MediaPlayerEventListener
mediaPlayer
- media player that raised the eventCopyright © 2009–2015 Caprica Software Limited. All rights reserved.