From 880c5c55983ce5d71a825d20ca185cb0427d7786 Mon Sep 17 00:00:00 2001 From: Tobias Jordine <jordine@hdm-stuttgart.de> Date: Sat, 18 Jun 2022 22:28:01 +0200 Subject: [PATCH] added basic thread demo --- pom.xml | 9 +++ .../concurrency/demo/AudioPlayerDemo01.java | 42 ++++++++++++++ .../concurrency/demo/AudioPlayerDemo02.java | 55 +++++++++++++++++++ .../concurrency/demo/AudioPlayerDemo03.java | 55 +++++++++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo01.java create mode 100644 src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo02.java create mode 100644 src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo03.java diff --git a/pom.xml b/pom.xml index f4756b4..e532328 100644 --- a/pom.xml +++ b/pom.xml @@ -13,4 +13,13 @@ <maven.compiler.target>17</maven.compiler.target> </properties> + <dependencies> + <!-- https://mvnrepository.com/artifact/javazoom/jlayer --> + <dependency> + <groupId>javazoom</groupId> + <artifactId>jlayer</artifactId> + <version>1.0.1</version> + </dependency> + </dependencies> + </project> \ No newline at end of file diff --git a/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo01.java b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo01.java new file mode 100644 index 0000000..e287e56 --- /dev/null +++ b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo01.java @@ -0,0 +1,42 @@ +package de.hdm.jordine.vorlesung.concurrency.demo; + +import javazoom.jl.player.Player; + +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.util.Scanner; + +// Inspired by https://www.delftstack.com/de/howto/java/java-play-mp3/ +public class AudioPlayerDemo01 { + + private Player player; + + public void playAudio(String path){ + try { + FileInputStream fileInputStream = new FileInputStream(path); + BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); + player = new Player(bufferedInputStream); + player.play(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + AudioPlayerDemo01 demo = new AudioPlayerDemo01(); + + Scanner sc = new Scanner(System.in); + + System.out.println("Write stop to stop the music: "); + + demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_01.mp3"); + + demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_02.mp3"); + + if (sc.nextLine().equalsIgnoreCase("stop")) { + demo.player.close(); + } + + } + +} diff --git a/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo02.java b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo02.java new file mode 100644 index 0000000..6de6e00 --- /dev/null +++ b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo02.java @@ -0,0 +1,55 @@ +package de.hdm.jordine.vorlesung.concurrency.demo; + +import javazoom.jl.player.Player; + +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.util.Scanner; + +// Inspired by https://www.delftstack.com/de/howto/java/java-play-mp3/ +public class AudioPlayerDemo02 { + + private Player player; + + public void playAudio(String path){ + try { + FileInputStream fileInputStream = new FileInputStream(path); + BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); + player = new Player(bufferedInputStream); + player.play(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + AudioPlayerDemo02 demo = new AudioPlayerDemo02(); + + Scanner sc = new Scanner(System.in); + + System.out.println("Write stop to stop the music: "); + + Thread t0 = new Thread(new Runnable() { + @Override + public void run() { + demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_01.mp3"); + } + }); + + Thread t1 = new Thread(new Runnable() { + @Override + public void run() { + demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_02.mp3"); + } + }); + + t0.start(); + t1.start(); + + if (sc.nextLine().equalsIgnoreCase("stop")) { + demo.player.close(); + } + + } + +} diff --git a/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo03.java b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo03.java new file mode 100644 index 0000000..202ba24 --- /dev/null +++ b/src/main/java/de/hdm/jordine/vorlesung/concurrency/demo/AudioPlayerDemo03.java @@ -0,0 +1,55 @@ +package de.hdm.jordine.vorlesung.concurrency.demo; + +import javazoom.jl.player.Player; + +import java.io.BufferedInputStream; +import java.io.FileInputStream; +import java.util.Scanner; + +// Inspired by https://www.delftstack.com/de/howto/java/java-play-mp3/ +public class AudioPlayerDemo03 { + + private Player player; + + public synchronized void playAudio(String path){ + try { + FileInputStream fileInputStream = new FileInputStream(path); + BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); + player = new Player(bufferedInputStream); + player.play(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + AudioPlayerDemo03 demo = new AudioPlayerDemo03(); + + Scanner sc = new Scanner(System.in); + + System.out.println("Write stop to stop the music: "); + + Thread t0 = new Thread(new Runnable() { + @Override + public void run() { + demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_01.mp3"); + } + }); + + Thread t1 = new Thread(new Runnable() { + @Override + public void run() { + demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_02.mp3"); + } + }); + + t0.start(); + t1.start(); + + if (sc.nextLine().equalsIgnoreCase("stop")) { + demo.player.close(); + } + + } + +} -- GitLab