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

3 respostas
E

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

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);
         }
     }

3 Respostas

V

Siga essas dicas.

V

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

E como que eu faço isso

Criado 16 de março de 2011
Ultima resposta 16 de mar. de 2011
Respostas 3
Participantes 2