diff --git a/pom.xml b/pom.xml index f4756b41e42d9c5777d859795f6405eb53c3b183..e532328f6338f1f0c9f4a0cd1cb9958bf7ce3727 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 0000000000000000000000000000000000000000..e287e56b2a3b1af2bd7ef15413c23c3af169937c --- /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 0000000000000000000000000000000000000000..6de6e0027f1280bc025ad57ee83a82d2ce63660a --- /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 0000000000000000000000000000000000000000..202ba245fca5cc7fb53cec0587cfb393b30981c8 --- /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(); + } + + } + +}