javax.sound.sampled

## Class LineEvent

- java.lang.Object
- - java.util.EventObject
  - - javax.sound.sampled.LineEvent

- All Implemented Interfaces:
    Serializable

      public class LineEvent
      extends EventObject

  The `LineEvent` class encapsulates information that a line sends its listeners whenever the line opens, closes, starts, or stops. Each of these four state changes is represented by a corresponding type of event. A listener receives the event as a parameter to its `update` method. By querying the event, the listener can learn the type of event, the line responsible for the event, and how much data the line had processed when the event occurred.

  Although this class implements Serializable, attempts to serialize a `LineEvent` object will fail.

  Since:
    1.3
  See Also:
    `Line`, `LineListener.update(javax.sound.sampled.LineEvent)`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `LineEvent.Type` | The LineEvent.Type inner class identifies what kind of event occurred on a line.

  - ### Field Summary

    - ### Fields inherited from class java.util.EventObject

      `source`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LineEvent(Line line, LineEvent.Type type, long position)` | Constructs a new event of the specified type, originating from the specified line.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getFramePosition()` | Obtains the position in the line's audio data when the event occurred, expressed in sample frames.
    `Line` | `getLine()` | Obtains the audio line that is the source of this event.
    `LineEvent.Type` | `getType()` | Obtains the event's type.
    `String` | `toString()` | Obtains a string representation of the event.

    - ### Methods inherited from class java.util.EventObject

      `getSource`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### LineEvent

          public LineEvent(Line line,
                           LineEvent.Type type,
                           long position)

      Constructs a new event of the specified type, originating from the specified line.
      Parameters:
        `line` - the source of this event
        `type` - the event type (`OPEN`, `CLOSE`, `START`, or `STOP`)
        `position` - the number of sample frames that the line had already processed when the event occurred, or `AudioSystem.NOT_SPECIFIED`
      Throws:
        `IllegalArgumentException` - if `line` is `null`.

  - ### Method Detail

    - #### getLine

          public final Line getLine()

      Obtains the audio line that is the source of this event.
      Returns:
        the line responsible for this event

    - #### getType

          public final LineEvent.Type getType()

      Obtains the event's type.
      Returns:
        this event's type (`LineEvent.Type.OPEN`, `LineEvent.Type.CLOSE`, `LineEvent.Type.START`, or `LineEvent.Type.STOP`)

    - #### getFramePosition

          public final long getFramePosition()

      Obtains the position in the line's audio data when the event occurred, expressed in sample frames. For example, if a source line had already played back 14 sample frames at the time it was paused, the pause event would report the line's position as 14. The next frame to be processed would be frame number 14 using zero-based numbering, or 15 using one-based numbering.

      Note that this field is relevant only to certain events generated by data lines, such as `START` and `STOP`. For events generated by lines that do not count sample frames, and for any other events for which this value is not known, the position value should be `AudioSystem.NOT_SPECIFIED`.

      Returns:
        the line's position as a sample frame number

    - #### toString

          public String toString()

      Obtains a string representation of the event. The contents of the string may vary between implementations of Java Sound.
      Overrides:
        `toString` in class `EventObject`
      Returns:
        a string describing the event.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.