Class Recorder

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

    public class Recorder
    extends Player
    JavaSound Recorder.
    Version:
    $Revision: 1.2 $
    Author:
    Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  Recorder.Capture
      Capture 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
    • Constructor Summary

      Constructors 
      Constructor Description
      Recorder​(java.lang.String file)
      Build a Recorder.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Process Actions when button are pressed.
      protected void createButtonPanel()
      Create the ButtonPanel for the recorder.
      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 recordIt()  
      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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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

      • REVISION

        public static final java.lang.String REVISION
        Revision Number
        See Also:
        Constant Field Values
      • SAMPLERATE_8KHZ

        public static final java.lang.String SAMPLERATE_8KHZ
        Audio sampled at 8 kHz (telephone quality).
        See Also:
        Constant Field Values
      • SAMPLERATE_11KHZ

        public static final java.lang.String SAMPLERATE_11KHZ
        Audio sampled at 11 kHz.
        See Also:
        Constant Field Values
      • SAMPLERATE_16KHZ

        public static final java.lang.String SAMPLERATE_16KHZ
        Audio sampled at 16 kHz (wideband).
        See Also:
        Constant Field Values
      • SAMPLERATE_22KHZ

        public static final java.lang.String SAMPLERATE_22KHZ
        Audio sampled at 22 kHz (FM radio quality).
        See Also:
        Constant Field Values
      • SAMPLERATE_32KHZ

        public static final java.lang.String SAMPLERATE_32KHZ
        Audio sampled at 32 kHz (ultra-wideband).
        See Also:
        Constant Field Values
      • SAMPLERATE_44KHZ

        public static final java.lang.String SAMPLERATE_44KHZ
        Audio sampled at 44 kHz (CD quality).
        See Also:
        Constant Field Values
      • CHANNELS_MONO

        public static final java.lang.String CHANNELS_MONO
        Mono Audio (1 channel).
        See Also:
        Constant Field Values
      • CHANNELS_STEREO

        public static final java.lang.String CHANNELS_STEREO
        Stereo Audio (2 channels).
        See Also:
        Constant Field Values
      • STATE_RECORDING

        protected static final int STATE_RECORDING
        Finite State Machine State: Recording
        See Also:
        Constant Field Values
      • STATE_REC_PAUSED

        protected static final int STATE_REC_PAUSED
        Finite State Machine State: Recording Paused
        See Also:
        Constant Field Values
      • recordButton

        protected javax.swing.JButton recordButton
        Record Button
      • audio

        protected byte[] audio
    • Constructor Detail

      • Recorder

        public Recorder​(java.lang.String file)
        Build a Recorder.
        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.
        Overrides:
        init in class Player
      • getAudioStream

        protected java.io.InputStream getAudioStream()
                                              throws java.io.IOException
        Returns an InputSteam containing the Audio to playback.
        Overrides:
        getAudioStream in class Player
        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
        Overrides:
        actionPerformed in class Player
      • stopIt

        public void stopIt()
        Overrides:
        stopIt in class Player
      • playIt

        public void playIt()
        Overrides:
        playIt in class Player
      • pauseIt

        public void pauseIt()
        Description copied from class: Player
        Pause
        Overrides:
        pauseIt in class Player
      • recordIt

        public void recordIt()
      • getProgress

        protected int getProgress()
        Return the progress of the playback.
        Overrides:
        getProgress in class Player
        Returns:
        the progress of the playback.
      • createButtonPanel

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