Skip to content

commit: PlaySoundSnippet#266

Open
aniruddhamitra wants to merge 2 commits intoiluwatar:masterfrom
aniruddhamitra:master
Open

commit: PlaySoundSnippet#266
aniruddhamitra wants to merge 2 commits intoiluwatar:masterfrom
aniruddhamitra:master

Conversation

@aniruddhamitra
Copy link
Copy Markdown

@aniruddhamitra aniruddhamitra commented Feb 21, 2026

/**

  • PlaySoundSnippet.
  • Plays a sound file using the Java Sound API. No external libraries are used.

  • This method blocks until playback completes.
  • Common supported formats are WAV, AIFF and AU; actual supported formats depend on the

  • runtime JVM/platform.
    */
    public class PlaySoundSnippet {

/**

  • Play a sound file and block until playback finishes.

  • @param filename path to the audio file

  • @throws IOException if an I/O error occurs

  • @throws UnsupportedAudioFileException if the audio file format is not supported

  • @throws LineUnavailableException if a clip line cannot be opened

  • @throws InterruptedException if the thread is interrupted while waiting for playback
    */
    public static void playSound(String filename)
    throws IOException,
    UnsupportedAudioFileException,
    LineUnavailableException,
    InterruptedException {
    var file = new File(filename);
    try (AudioInputStream audioIn = AudioSystem.getAudioInputStream(file)) {
    Clip clip = AudioSystem.getClip();
    clip.open(audioIn);

    final Object lock = new Object();
    final boolean[] finished = {false};

    clip.addLineListener((LineEvent event) -> {
    if (event.getType() == LineEvent.Type.STOP) {
    synchronized (lock) {
    finished[0] = true;
    lock.notifyAll();
    }
    }
    });

    clip.start();

    synchronized (lock) {
    while (!finished[0]) {
    lock.wait();
    }
    }

    clip.close();
    }
    }
    }

@stale
Copy link
Copy Markdown

stale Bot commented Mar 24, 2026

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale Bot added the status: stale label Mar 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant