diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/musichub/business/Album.java (renamed from src/musichub/business/Album.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/AudioBook.java (renamed from src/musichub/business/AudioBook.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/AudioElement.java (renamed from src/musichub/business/AudioElement.java) | 34 | ||||
-rw-r--r-- | src/main/java/musichub/business/Category.java (renamed from src/musichub/business/Category.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/Genre.java (renamed from src/musichub/business/Genre.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/Language.java (renamed from src/musichub/business/Language.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/MusicHub.java (renamed from src/musichub/business/MusicHub.java) | 12 | ||||
-rw-r--r-- | src/main/java/musichub/business/NoAlbumFoundException.java (renamed from src/musichub/business/NoAlbumFoundException.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/NoElementFoundException.java (renamed from src/musichub/business/NoElementFoundException.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/NoPlayListFoundException.java (renamed from src/musichub/business/NoPlayListFoundException.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/PlayList.java (renamed from src/musichub/business/PlayList.java) | 0 | ||||
-rw-r--r-- | src/main/java/musichub/business/Song.java (renamed from src/musichub/business/Song.java) | 2 | ||||
-rw-r--r-- | src/main/java/musichub/main/Main.java (renamed from src/musichub/main/Main.java) | 12 | ||||
-rw-r--r-- | src/main/java/musichub/util/XMLHandler.java (renamed from src/musichub/util/XMLHandler.java) | 0 |
14 files changed, 58 insertions, 2 deletions
diff --git a/src/musichub/business/Album.java b/src/main/java/musichub/business/Album.java index 01fd179..01fd179 100644 --- a/src/musichub/business/Album.java +++ b/src/main/java/musichub/business/Album.java diff --git a/src/musichub/business/AudioBook.java b/src/main/java/musichub/business/AudioBook.java index 80392d6..80392d6 100644 --- a/src/musichub/business/AudioBook.java +++ b/src/main/java/musichub/business/AudioBook.java diff --git a/src/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java index e0a686b..0a51c16 100644 --- a/src/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/musichub/business/Category.java b/src/main/java/musichub/business/Category.java index f676e51..f676e51 100644 --- a/src/musichub/business/Category.java +++ b/src/main/java/musichub/business/Category.java diff --git a/src/musichub/business/Genre.java b/src/main/java/musichub/business/Genre.java index 18deca6..18deca6 100644 --- a/src/musichub/business/Genre.java +++ b/src/main/java/musichub/business/Genre.java diff --git a/src/musichub/business/Language.java b/src/main/java/musichub/business/Language.java index 679e586..679e586 100644 --- a/src/musichub/business/Language.java +++ b/src/main/java/musichub/business/Language.java diff --git a/src/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java index 38e2214..f289f1a 100644 --- a/src/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/musichub/business/NoAlbumFoundException.java b/src/main/java/musichub/business/NoAlbumFoundException.java index 04cbfcd..04cbfcd 100644 --- a/src/musichub/business/NoAlbumFoundException.java +++ b/src/main/java/musichub/business/NoAlbumFoundException.java diff --git a/src/musichub/business/NoElementFoundException.java b/src/main/java/musichub/business/NoElementFoundException.java index a9b0d76..a9b0d76 100644 --- a/src/musichub/business/NoElementFoundException.java +++ b/src/main/java/musichub/business/NoElementFoundException.java diff --git a/src/musichub/business/NoPlayListFoundException.java b/src/main/java/musichub/business/NoPlayListFoundException.java index c5eb413..c5eb413 100644 --- a/src/musichub/business/NoPlayListFoundException.java +++ b/src/main/java/musichub/business/NoPlayListFoundException.java diff --git a/src/musichub/business/PlayList.java b/src/main/java/musichub/business/PlayList.java index 4180a62..4180a62 100644 --- a/src/musichub/business/PlayList.java +++ b/src/main/java/musichub/business/PlayList.java diff --git a/src/musichub/business/Song.java b/src/main/java/musichub/business/Song.java index 3e9011b..5d044a9 100644 --- a/src/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/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index b72a95b..c820b5d 100644 --- a/src/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()); } diff --git a/src/musichub/util/XMLHandler.java b/src/main/java/musichub/util/XMLHandler.java index 4b61842..4b61842 100644 --- a/src/musichub/util/XMLHandler.java +++ b/src/main/java/musichub/util/XMLHandler.java |