From 4fd1e4e934cf140f74fd7dba47b12baec965abb7 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 20 Jun 2022 18:03:19 -0700 Subject: [PATCH] Add dialogue sound, note: still has bug --- sound/pen.wav | Bin 0 -> 46712 bytes src/DialogueMenu.java | 9 +++++++++ src/Sound.java | 3 +-- src/UtilityFunction.java | 7 +++++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 sound/pen.wav diff --git a/sound/pen.wav b/sound/pen.wav new file mode 100644 index 0000000000000000000000000000000000000000..4a76e6d7e4b88449e4c52b8727b9a04f43f1ba46 GIT binary patch literal 46712 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 literal 0 HcmV?d00001 diff --git a/src/DialogueMenu.java b/src/DialogueMenu.java index d8f6ac9..6ddb095 100644 --- a/src/DialogueMenu.java +++ b/src/DialogueMenu.java @@ -2,7 +2,10 @@ // displays dialogue, animates dialogue, and renders box that contains dialogue as well as the portraits of the characters // that speak to the players +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; import java.awt.*; +import java.io.IOException; import java.io.Serializable; import java.util.ArrayList; @@ -101,6 +104,12 @@ public class DialogueMenu extends TextBox implements Serializable { if (frameCounter >= FREQUENCY) { frameCounter -= FREQUENCY; currentFrame += 1; + // play dialogue sound + try { + UtilityFunction.playSound("sound/pen.wav"); + } catch (UnsupportedAudioFileException | LineUnavailableException | IOException e) { + throw new RuntimeException(e); + } } // set font of string to be drawn g.setFont(font); diff --git a/src/Sound.java b/src/Sound.java index c8fa995..856351c 100644 --- a/src/Sound.java +++ b/src/Sound.java @@ -22,8 +22,7 @@ public class Sound implements Serializable { clip.start(); } - // while close() is not used because the same sounds are either constantly used or immediately dereferenced (and therefore collected by the GC) - // it is still good practice to enable closing sounds after finishing using them + // close sound after use public void close() { clip.close(); } diff --git a/src/UtilityFunction.java b/src/UtilityFunction.java index 62655b9..3c16ad9 100644 --- a/src/UtilityFunction.java +++ b/src/UtilityFunction.java @@ -1,6 +1,7 @@ // Eric Li, Charlie Zhao, ICS4U, Finished 6/20/2022 // Utility functions to help with common tasks +import javax.sound.sampled.LineEvent; import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.UnsupportedAudioFileException; import java.awt.event.KeyEvent; @@ -45,6 +46,12 @@ public final class UtilityFunction { // start playing a sound that is located at filePath public static void playSound(String filePath) throws UnsupportedAudioFileException, LineUnavailableException, IOException { Sound sound = new Sound(filePath); + sound.clip.addLineListener(e -> { + // close clip after sound is done playing + if (e.getType() == LineEvent.Type.STOP) { + sound.close(); + } + }); sound.start(); } }