From d619fb2f4d56979b45d4a87e6a04845058f8859b Mon Sep 17 00:00:00 2001 From: Matt Jenkins Date: Sat, 7 Sep 2019 20:34:02 +0100 Subject: [PATCH] Added playback speed option --- .../audiobookrecorder/AudiobookRecorder.java | 8 ++++++-- .../audiobookrecorder/MainToolBar.java | 20 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/uk/co/majenko/audiobookrecorder/AudiobookRecorder.java b/src/uk/co/majenko/audiobookrecorder/AudiobookRecorder.java index aa5cb19..fb9a8a5 100644 --- a/src/uk/co/majenko/audiobookrecorder/AudiobookRecorder.java +++ b/src/uk/co/majenko/audiobookrecorder/AudiobookRecorder.java @@ -2183,7 +2183,9 @@ public class AudiobookRecorder extends JFrame { try { AudioFormat sampleformat = s.getAudioFormat(); - AudioFormat format = new AudioFormat(sampleformat.getSampleRate(), 16, 2, true, false); + float sampleRate = sampleformat.getSampleRate(); + sampleRate *= toolBar.getPlaybackSpeed(); + AudioFormat format = new AudioFormat(sampleRate, 16, 2, true, false); play = AudioSystem.getSourceDataLine(format, Options.getPlaybackMixer()); play.open(format); @@ -2421,7 +2423,9 @@ public class AudiobookRecorder extends JFrame { try { AudioFormat sampleformat = s.getAudioFormat(); - AudioFormat format = new AudioFormat(sampleformat.getSampleRate(), 16, 2, true, false); + float sampleRate = sampleformat.getSampleRate(); + sampleRate *= toolBar.getPlaybackSpeed(); + AudioFormat format = new AudioFormat(sampleRate, 16, 2, true, false); play = AudioSystem.getSourceDataLine(format, Options.getPlaybackMixer()); play.open(format); play.start(); diff --git a/src/uk/co/majenko/audiobookrecorder/MainToolBar.java b/src/uk/co/majenko/audiobookrecorder/MainToolBar.java index c78740e..0653c05 100644 --- a/src/uk/co/majenko/audiobookrecorder/MainToolBar.java +++ b/src/uk/co/majenko/audiobookrecorder/MainToolBar.java @@ -19,6 +19,8 @@ public class MainToolBar extends JToolBar { JButtonSpacePlay eq; JToggleButtonSpacePlay mic; + JComboBox playbackSpeed; + JToggleButtonSpacePlay disableEffects; AudiobookRecorder root; @@ -128,6 +130,7 @@ public class MainToolBar extends JToolBar { } } }); + add(mic); @@ -152,7 +155,19 @@ public class MainToolBar extends JToolBar { add(disableEffects); + addSeparator(); + add(new JLabel("Playback speed: ")); + playbackSpeed = new JComboBox(new String[] { + "0.75x", + "1.00x", + "1.25x", + "1.50x", + "1.75x" + }); + + playbackSpeed.setSelectedIndex(1); + add(playbackSpeed); setFloatable(false); } @@ -161,4 +176,9 @@ public class MainToolBar extends JToolBar { playtoSentence.setEnabled(b); } + public float getPlaybackSpeed() { + int v = playbackSpeed.getSelectedIndex(); + return 0.75f + (0.25f * v); + } + }