How do I skip backwards on an AudioInputStream?
In general, there is no clean way besides buffering the whole content of the AudioInputStream as done in the example Playing an audio file multiple times. There is one possibility: if the AudioInputStream is created from a FileInputStream, you can use AudioInputStream.skip() with a negative skipp amount. This works because the AudioInputStream implementation just passes the skip() call to its underlying stream and the FileInputStream implementation is able to handle random accesses. Note, however, that this relies on unspecified, implementation specific behaviour of the Sun JDK. Therefore, this approach should be used with care.