Skip to content
Snippets Groups Projects
Commit 860b641d authored by Jordine Tobias Dr.'s avatar Jordine Tobias Dr.
Browse files

thread demo extended

parent 880c5c55
No related branches found
No related tags found
No related merge requests found
Pipeline #37881 passed
package de.hdm.jordine.vorlesung.concurrency.demo;
import javazoom.jl.player.Player;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.util.Scanner;
import java.util.concurrent.locks.ReentrantLock;
// Inspired by https://www.delftstack.com/de/howto/java/java-play-mp3/
public class AudioPlayerDemo04 {
private Player player;
private ReentrantLock lock = new ReentrantLock();
public void playAudio(String path){
try {
lock.lock();
FileInputStream fileInputStream = new FileInputStream(path);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
player = new Player(bufferedInputStream);
System.out.println("Playing " + path);
player.play();
lock.unlock();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InterruptedException {
AudioPlayerDemo04 demo = new AudioPlayerDemo04();
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() {
System.out.println("Starting t0");
demo.playAudio("/Users/tobiasjordine/Documents/HdM/SE3/sose2022/misc/demo_audio/sample_01.mp3");
}
});
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Starting t1");
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();
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment