aboutsummaryrefslogtreecommitdiff
path: root/src/musichub/business
diff options
context:
space:
mode:
Diffstat (limited to 'src/musichub/business')
-rw-r--r--src/musichub/business/AudioElement.java16
-rw-r--r--src/musichub/business/MusicHub.java13
-rw-r--r--src/musichub/business/Song.java11
3 files changed, 40 insertions, 0 deletions
diff --git a/src/musichub/business/AudioElement.java b/src/musichub/business/AudioElement.java
index e0a686b..9294b49 100644
--- a/src/musichub/business/AudioElement.java
+++ b/src/musichub/business/AudioElement.java
@@ -3,8 +3,16 @@ package musichub.business;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import java.io.File;
+import java.io.IOException;
import java.util.UUID;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Clip;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
public abstract class AudioElement {
protected String title;
protected String artist;
@@ -84,5 +92,13 @@ public abstract class AudioElement {
parentElement.appendChild(contentElement);
}
+
+ public void playSong() throws UnsupportedAudioFileException, IOException, LineUnavailableException {
+ File file = new File(this.content);
+ AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);
+ Clip clip = AudioSystem.getClip();
+ clip.open(audioStream);
+ clip.start();
+ }
} \ No newline at end of file
diff --git a/src/musichub/business/MusicHub.java b/src/musichub/business/MusicHub.java
index 38e2214..e138d84 100644
--- a/src/musichub/business/MusicHub.java
+++ b/src/musichub/business/MusicHub.java
@@ -6,8 +6,12 @@ import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import java.io.IOException;
import java.util.*;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
class SortByDate implements Comparator<Album> {
public int compare(Album a1, Album a2) {
return a1.getDate().compareTo(a2.getDate());
@@ -326,4 +330,13 @@ public class MusicHub {
}
xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH);
}
+
+ public void getSong(List<AudioElement> Songs, String songTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException {
+ for (AudioElement s : Songs) {
+ if (s.getTitle().equalsIgnoreCase(songTitle)) {
+ s.playSong();
+ }
+ }
+
+ }
} \ No newline at end of file
diff --git a/src/musichub/business/Song.java b/src/musichub/business/Song.java
index 3e9011b..7b90156 100644
--- a/src/musichub/business/Song.java
+++ b/src/musichub/business/Song.java
@@ -1,5 +1,14 @@
package musichub.business;
+import java.io.File;
+import java.io.IOException;
+
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Clip;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -53,4 +62,6 @@ public class Song extends AudioElement {
parentElement.appendChild(song);
}
+
+
} \ No newline at end of file