From 2b89ec9dbf3719b3fc11bae63de37baa7c928026 Mon Sep 17 00:00:00 2001 From: timbo Date: Wed, 5 Nov 2014 00:56:38 +0100 Subject: [PATCH] Added AudioPlayer AudioPlayer and Sample File added --- .gitignore | 3 +- .../audio/{BackgroundSound.java => Main.java} | 4 +- HeatUp/src/de/heatup/audio/WavePlayer.java | 99 ++++++++++++++++++ .../de/heatup/resources/audio/audiosample.wav | Bin 0 -> 47252 bytes 4 files changed, 103 insertions(+), 3 deletions(-) rename HeatUp/src/de/heatup/audio/{BackgroundSound.java => Main.java} (55%) create mode 100644 HeatUp/src/de/heatup/audio/WavePlayer.java create mode 100644 HeatUp/src/de/heatup/resources/audio/audiosample.wav diff --git a/.gitignore b/.gitignore index 58e14c2..fd379b3 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ local.properties .settings/ .loadpath .classpath -.project \ No newline at end of file +.project +.recommenders \ No newline at end of file diff --git a/HeatUp/src/de/heatup/audio/BackgroundSound.java b/HeatUp/src/de/heatup/audio/Main.java similarity index 55% rename from HeatUp/src/de/heatup/audio/BackgroundSound.java rename to HeatUp/src/de/heatup/audio/Main.java index 00f69d9..69ceb73 100644 --- a/HeatUp/src/de/heatup/audio/BackgroundSound.java +++ b/HeatUp/src/de/heatup/audio/Main.java @@ -1,8 +1,8 @@ package de.heatup.audio; -public class BackgroundSound { +public class Main { public static void main(String[] args) { - + new WavePlayer("").start(); } } diff --git a/HeatUp/src/de/heatup/audio/WavePlayer.java b/HeatUp/src/de/heatup/audio/WavePlayer.java new file mode 100644 index 0000000..3835596 --- /dev/null +++ b/HeatUp/src/de/heatup/audio/WavePlayer.java @@ -0,0 +1,99 @@ +package de.heatup.audio; + +import java.io.File; +import java.io.IOException; +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioInputStream; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.DataLine; +import javax.sound.sampled.FloatControl; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.SourceDataLine; +import javax.sound.sampled.UnsupportedAudioFileException; + +public class WavePlayer extends Thread { + + private String filename; + + private Position curPosition; + + private final int EXTERNAL_BUFFER_SIZE = 524288; // 128Kb + + enum Position { + LEFT, RIGHT, NORMAL + }; + + public WavePlayer(String wavfile) { + filename = wavfile; + curPosition = Position.NORMAL; + } + + public WavePlayer(String wavfile, Position p) { + filename = wavfile; + curPosition = p; + } + + public void run() { + + File soundFile = new File(filename); + if (!soundFile.exists()) { + System.err.println("Wave file not found: " + filename); + return; + } + + AudioInputStream audioInputStream = null; + try { + audioInputStream = AudioSystem.getAudioInputStream(soundFile); + } catch (UnsupportedAudioFileException e1) { + e1.printStackTrace(); + return; + } catch (IOException e1) { + e1.printStackTrace(); + return; + } + + AudioFormat format = audioInputStream.getFormat(); + SourceDataLine auline = null; + DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); + + try { + auline = (SourceDataLine) AudioSystem.getLine(info); + auline.open(format); + } catch (LineUnavailableException e) { + e.printStackTrace(); + return; + } catch (Exception e) { + e.printStackTrace(); + return; + } + + if (auline.isControlSupported(FloatControl.Type.PAN)) { + FloatControl pan = (FloatControl) auline + .getControl(FloatControl.Type.PAN); + if (curPosition == Position.RIGHT) + pan.setValue(1.0f); + else if (curPosition == Position.LEFT) + pan.setValue(-1.0f); + } + + auline.start(); + int nBytesRead = 0; + byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; + + try { + while (nBytesRead != -1) { + nBytesRead = audioInputStream.read(abData, 0, abData.length); + if (nBytesRead >= 0) + auline.write(abData, 0, nBytesRead); + } + } catch (IOException e) { + e.printStackTrace(); + return; + } finally { + auline.drain(); + auline.close(); + } + + } +} + \ No newline at end of file diff --git a/HeatUp/src/de/heatup/resources/audio/audiosample.wav b/HeatUp/src/de/heatup/resources/audio/audiosample.wav new file mode 100644 index 0000000000000000000000000000000000000000..bf7fc007cfbcb930c786c5c9c0f48f5a1bcf9b59 GIT binary patch literal 47252 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%0Ag0uixoEQA?R9Uuq@ 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 Pmn>&$vyG2Q8J7JIbxhui literal 0 HcmV?d00001