diff --git a/src/main/java/moe/nekojimi/chords/Track.java b/src/main/java/moe/nekojimi/chords/Track.java index ae9465f..8d96790 100644 --- a/src/main/java/moe/nekojimi/chords/Track.java +++ b/src/main/java/moe/nekojimi/chords/Track.java @@ -10,6 +10,9 @@ import com.amihaiemil.eoyaml.YamlMapping; import com.amihaiemil.eoyaml.YamlSequence; import com.amihaiemil.eoyaml.YamlSequenceBuilder; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; @@ -25,6 +28,7 @@ public class Track implements Comparable private String artist; private final URL url; private File location = null; + private InputStream inputStream = null; private int number; private List formats = new ArrayList<>(); @@ -136,6 +140,18 @@ public class Track implements Comparable this.location = location; } + public InputStream getInputStream() throws FileNotFoundException + { + if (inputStream == null && location != null) + inputStream = new FileInputStream(location); + return inputStream; + } + + public void setInputStream(InputStream inputStream) + { + this.inputStream = inputStream; + } + void delete() { if (location != null) diff --git a/src/main/java/moe/nekojimi/chords/TrackPlayer.java b/src/main/java/moe/nekojimi/chords/TrackPlayer.java index 226f161..2fa64c9 100644 --- a/src/main/java/moe/nekojimi/chords/TrackPlayer.java +++ b/src/main/java/moe/nekojimi/chords/TrackPlayer.java @@ -43,7 +43,7 @@ public class TrackPlayer implements Closeable { try { - in = AudioSystem.getAudioInputStream(track.getLocation()); + in = AudioSystem.getAudioInputStream(track.getInputStream()); decodedFormat = AudioSendHandler.INPUT_FORMAT; break; // it worked!