org.xiph.speex.player
Class Player

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.xiph.speex.player.Player
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
Direct Known Subclasses:
Recorder

public class Player
extends javax.swing.JPanel
implements java.awt.event.ActionListener

JavaSound Player. Here is the Finite State Machine describing it's state.

          +----+
          |Init|
          +----+
             V
    ----->+----+
   /     >|Stop| \
  /     / +----+< \
 /     /         \ V
 | +-----+ ---> +----+
 | |Pause|      |Play|
 | +-----+ <--- +----+
  \     A        / A
   \     \+----+< /
    ------|Buff| /
          +----+
 

Version:
$Revision: 1.2 $
Author:
Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
See Also:
Serialized Form

Nested Class Summary
protected  class Player.Playback
          Playback thread
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  java.net.URL audioFile
           
protected  java.lang.String audioFilename
           
protected  int audioLength
           
static java.lang.String BUILD
          Build Number
protected  int oldstate
          Previous State of the Finite State Machine
protected  javax.swing.JButton pauseButton
          Pause Button
protected  Player.Playback playback
           
protected  javax.swing.JButton playButton
          Play Button
protected  javax.swing.JPanel playerButtonPane
          The Players Button Panel
protected  javax.swing.JPanel playerScrollPane
          The Players Scroll Panel
protected  javax.swing.JSlider progressBar
          Progress Bar
static java.lang.String REVISION
          Revision Number
protected  int state
          Current State of the Finite State Machine
protected static int STATE_BUFFERING
          Finite State Machine State: Buffering
protected static int STATE_ERROR
          Finite State Machine State: Error
protected static int STATE_INIT
          Finite State Machine State: Initialised
protected static int STATE_PAUSED
          Finite State Machine State: Paused
protected static int STATE_PLAYING
          Finite State Machine State: Playing
protected static int STATE_STOPPED
          Finite State Machine State: Stopped
protected  javax.swing.JButton stopButton
          Stop Button
protected  javax.swing.Timer timer
           
static java.lang.String VERSION
          Version Number
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Player(java.lang.String file)
          Build a Player.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Process Actions when button are pressed.
protected static javax.swing.JButton buildButton(java.lang.String actionCommand, java.lang.String toolTip, java.lang.String pathIconDefault, java.lang.String pathIconDisabled, java.lang.String pathIconRollover, java.awt.event.ActionListener listener)
          Build a Button.
protected  void createButtonPanel()
          Create the ButtonPanel for the player.
protected  void createGUI()
          Create GUI for the player.
protected static javax.swing.ImageIcon createImageIcon(java.lang.String path)
          Returns an ImageIcon, or null if the path was invalid.
protected  void createScrollPanel()
          Create the ScrollPanel for the player.
protected  java.io.InputStream getAudioStream()
          Returns an InputSteam containing the Audio to playback.
protected  int getProgress()
          Return the progress of the playback.
 void init()
          Initialize the Player Component.
static void main(java.lang.String[] args)
          Command Line entrance.
 void pauseIt()
          Pause
 void playIt()
           
 void start()
          Start the Player Component.
 void stop()
          Stop the Player Component.
 void stopIt()
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

BUILD

public static final java.lang.String BUILD
Build Number

See Also:
Constant Field Values

VERSION

public static final java.lang.String VERSION
Version Number

See Also:
Constant Field Values

REVISION

public static final java.lang.String REVISION
Revision Number

See Also:
Constant Field Values

STATE_INIT

protected static final int STATE_INIT
Finite State Machine State: Initialised

See Also:
Constant Field Values

STATE_STOPPED

protected static final int STATE_STOPPED
Finite State Machine State: Stopped

See Also:
Constant Field Values

STATE_PLAYING

protected static final int STATE_PLAYING
Finite State Machine State: Playing

See Also:
Constant Field Values

STATE_PAUSED

protected static final int STATE_PAUSED
Finite State Machine State: Paused

See Also:
Constant Field Values

STATE_BUFFERING

protected static final int STATE_BUFFERING
Finite State Machine State: Buffering

See Also:
Constant Field Values

STATE_ERROR

protected static final int STATE_ERROR
Finite State Machine State: Error

See Also:
Constant Field Values

playerScrollPane

protected javax.swing.JPanel playerScrollPane
The Players Scroll Panel


playerButtonPane

protected javax.swing.JPanel playerButtonPane
The Players Button Panel


playButton

protected javax.swing.JButton playButton
Play Button


pauseButton

protected javax.swing.JButton pauseButton
Pause Button


stopButton

protected javax.swing.JButton stopButton
Stop Button


progressBar

protected javax.swing.JSlider progressBar
Progress Bar


timer

protected javax.swing.Timer timer

state

protected int state
Current State of the Finite State Machine


oldstate

protected int oldstate
Previous State of the Finite State Machine


audioFilename

protected java.lang.String audioFilename

audioFile

protected java.net.URL audioFile

audioLength

protected int audioLength

playback

protected Player.Playback playback
Constructor Detail

Player

public Player(java.lang.String file)
Build a Player.

Parameters:
file -
Method Detail

main

public static void main(java.lang.String[] args)
Command Line entrance.

Parameters:
args -

init

public void init()
Initialize the Player Component.


start

public void start()
Start the Player Component.


stop

public void stop()
Stop the Player Component.


getAudioStream

protected java.io.InputStream getAudioStream()
                                      throws java.io.IOException
Returns an InputSteam containing the Audio to playback.

Returns:
an InputSteam containing the Audio to playback.
Throws:
java.io.IOException

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Process Actions when button are pressed. Implemented from ActionListener interface.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
e -

stopIt

public void stopIt()

playIt

public void playIt()

pauseIt

public void pauseIt()
Pause


getProgress

protected int getProgress()
Return the progress of the playback.

Returns:
the progress of the playback.

createGUI

protected void createGUI()
Create GUI for the player. The player panel that should look something like this:
 
 +-----------------------+
 |  ----|--------------  |  Scroll Panel
 +-----------------------+
 | +----+ +-----+ +----+ |
 | |play| |pause| |stop| |  Button Panel
 | +----+ +-----+ +----+ |
 +-----------------------+
 


createScrollPanel

protected void createScrollPanel()
Create the ScrollPanel for the player. The player scroll panel that should look something like this:
 
 +-----------------------+
 |  ----|--------------  |  Scroll Panel
 +-----------------------+
 


createButtonPanel

protected void createButtonPanel()
Create the ButtonPanel for the player. The player button panel that should look something like this:
 
 +-----------------------+
 | +----+ +-----+ +----+ |
 | |play| |pause| |stop| |  Button Panel
 | +----+ +-----+ +----+ |
 +-----------------------+
 


buildButton

protected static javax.swing.JButton buildButton(java.lang.String actionCommand,
                                                 java.lang.String toolTip,
                                                 java.lang.String pathIconDefault,
                                                 java.lang.String pathIconDisabled,
                                                 java.lang.String pathIconRollover,
                                                 java.awt.event.ActionListener listener)
Build a Button.

Parameters:
actionCommand -
toolTip -
pathIconDefault -
pathIconDisabled -
pathIconRollover -
listener -
Returns:
the Button that was built.

createImageIcon

protected static javax.swing.ImageIcon createImageIcon(java.lang.String path)
Returns an ImageIcon, or null if the path was invalid.

Parameters:
path -
Returns:
an ImageIcon, or null if the path was invalid.


Copyright © 1999-2004 Wimba S.A. All Rights Reserved.