title: Could not get audio input stream from input stream
body: <p>I want to get the sound file at the URL provided in the code and play it (It is in <code>mp3</code> format). I looked through some Stack Overflow questions related to this problem, and they all said to get <code>mp3plugin.jar</code> so I did.</p>
  
  <p>In Eclipse, I added it as an external jar (as it is located inside of my Downloads folder, not sure if that's the best place for it) under Configure Build Path. I ran it again and it's still giving me this error:</p>
  
  <blockquote>
    <p>javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream<br>
        at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)<br>
        at Starter.main(Starter.java:21)</p>
  </blockquote>
  
  <p>Here is the code:</p>
  
  <pre><code>public class Starter {
  
      public static void main(String[] args) {
          AudioInputStream din = null;
          try {
              URL url = new URL("http://c5.rbxcdn.com/2e6d33a5b3b1d8f250c395816ff9f145");
              HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
              InputStream bufferedIn = new BufferedInputStream(httpcon.getInputStream());
              AudioInputStream in = AudioSystem.getAudioInputStream(bufferedIn);
              AudioFormat baseFormat = in.getFormat();
              AudioFormat decodedFormat = new AudioFormat(
                      AudioFormat.Encoding.PCM_SIGNED,
                      baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
                      baseFormat.getChannels() * 2, baseFormat.getSampleRate(),
                      false);
              din = AudioSystem.getAudioInputStream(decodedFormat, in);
              DataLine.Info info = new DataLine.Info(SourceDataLine.class, decodedFormat);
              SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
              if(line != null) {
                  line.open(decodedFormat);
                  byte[] data = new byte[4096];
                  // Start
                  line.start();
  
                  int nBytesRead;
                  while ((nBytesRead = din.read(data, 0, data.length)) != -1) {
                      line.write(data, 0, nBytesRead);
                  }
                  // Stop
                  line.drain();
                  line.stop();
                  line.close();
                  din.close();
              }
  
          }
          catch(Exception e) {
              e.printStackTrace();
          }
          finally {
              if(din != null) {
                  try { din.close(); } catch(IOException e) { }
              }
          }
      }
  }
  </code></pre>