aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/musichub/business/AudioElement.java34
-rw-r--r--src/main/java/musichub/business/MusicHub.java12
-rw-r--r--src/main/java/musichub/business/Song.java2
-rw-r--r--src/main/java/musichub/main/Main.java12
4 files changed, 58 insertions, 2 deletions
diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java
index e0a686b..0a51c16 100644
--- a/src/main/java/musichub/business/AudioElement.java
+++ b/src/main/java/musichub/business/AudioElement.java
@@ -3,6 +3,10 @@ package musichub.business;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import javax.sound.sampled.*;
+import java.io.File;
+import java.io.IOException;
+import java.util.Scanner;
import java.util.UUID;
public abstract class AudioElement {
@@ -85,4 +89,34 @@ public abstract class AudioElement {
}
+ public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException {
+
+ Scanner scanner = new Scanner(System.in);
+
+ File file = new File(this.content);
+ AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);
+ Clip clip = AudioSystem.getClip();
+ clip.open(audioStream);
+
+ String action = "";
+
+ while (!action.equals("Q")) {
+ System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit");
+ System.out.println("Enter your choice");
+ action = scanner.next();
+ action = action.toUpperCase();
+
+ switch (action) {
+ case "S", "Q" -> clip.stop();
+ case "P" -> clip.start();
+ case "R" -> clip.setMicrosecondPosition(0);
+ default -> System.out.println("try again");
+ }
+ System.out.println("You stopped the Audio element");
+ }
+
+ clip.close();
+
+ }
+
} \ No newline at end of file
diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java
index 38e2214..f289f1a 100644
--- a/src/main/java/musichub/business/MusicHub.java
+++ b/src/main/java/musichub/business/MusicHub.java
@@ -6,6 +6,9 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import java.io.IOException;
import java.util.*;
class SortByDate implements Comparator<Album> {
@@ -326,4 +329,13 @@ public class MusicHub {
}
xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH);
}
+
+ public void getAudioElement(List<AudioElement> audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException {
+ for (AudioElement el : audios) {
+ if (el.getTitle().equalsIgnoreCase(elementTitle)) {
+ el.manageAudioElement();
+ }
+ }
+
+ }
} \ No newline at end of file
diff --git a/src/main/java/musichub/business/Song.java b/src/main/java/musichub/business/Song.java
index 3e9011b..5d044a9 100644
--- a/src/main/java/musichub/business/Song.java
+++ b/src/main/java/musichub/business/Song.java
@@ -53,4 +53,6 @@ public class Song extends AudioElement {
parentElement.appendChild(song);
}
+
+
} \ No newline at end of file
diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java
index b72a95b..c820b5d 100644
--- a/src/main/java/musichub/main/Main.java
+++ b/src/main/java/musichub/main/Main.java
@@ -2,11 +2,15 @@ package musichub.main;
import musichub.business.*;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import java.io.IOException;
import java.util.Iterator;
+import java.util.List;
import java.util.Scanner;
public class Main {
- public static void main(String[] args) {
+ public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
MusicHub theHub = new MusicHub();
@@ -41,7 +45,8 @@ public class Main {
albumTitle = scan.nextLine();
try {
- System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle));
+ List<Song> songs = theHub.getAlbumSongsSortedByGenre(albumTitle);
+ System.out.println(songs);
} catch (NoAlbumFoundException ex) {
System.out.println("No album found with the requested title " + ex.getMessage());
}
@@ -55,7 +60,10 @@ public class Main {
albumTitle = scan.nextLine();
try {
+ List<AudioElement> songs = theHub.getAlbumSongs(albumTitle);
System.out.println(theHub.getAlbumSongs(albumTitle));
+ String song = scan.nextLine();
+ theHub.getAudioElement(songs, song);
} catch (NoAlbumFoundException ex) {
System.out.println("No album found with the requested title " + ex.getMessage());
}