[Resolvido]Erro java.io.IOException: mark/reset not supported

Boa noite pessoal, seguinte estou tentando tocar um som em .Wav via evento de um botão e esta apresentando este erro

Erro java.io.IOException: mark/reset not supported

Segue abaixo o codigo

[code]public static void play(final InputStream arquivo, final boolean repetir){
try {
// Obtém os dados sonoros
final AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(arquivo);

         // Carrega o formato do audio e cria uma linha
         final AudioFormat audioFormat = audioInputStream.getFormat();
         final DataLine.Info dataLineInfo = new DataLine.Info(Clip.class,
                                                              audioInputStream.getFormat(),
                                                              ((int) audioInputStream.getFrameLength() * audioFormat.getFrameSize()));

         // Carrega o som para o dispositivo
         final Clip clip = (Clip) AudioSystem.getLine(dataLineInfo);
         clip.addLineListener(new LineListener() {

             // Evento do LineListener
             public void update(final LineEvent e) {
                 if (e.getType() == LineEvent.Type.STOP) {
                     e.getLine().close();
                 }
             }
         });
         clip.open(audioInputStream);

         // Toca o som
         if (repetir) {
             clip.loop(Clip.LOOP_CONTINUOUSLY);
         } else {
             clip.loop(0);
         }
     } catch (final Exception ex) {
         System.out.println("Erro "+ex);
     }
 }

[/code]

Siga essas dicas.

Se não me engano, o problema está no fato de você não poder solicitar loop se o seu buffer não suportar loop e reset.

Se quiser fazer isso, terá que implementar vc mesmo um mecanismo que volte ao início do buffer. Ou, caso seja um wav pequeno, carrega-lo inteiramente em memória.

E como que eu faço isso