Un BufferedInputStream non e' un ogetto attivo, ma passivo, nel senso che lui non fa nulla, ma e' qualcun altro ad utilizzarlo. E' un particolare InputStream che legge da file invece che un byte alla volta, un blocco di byte (se non sbaglio di default 1024, ma comunque e' configurabile). Questo riduce notevolmente il tempo di lettura di un file.
Comunque, lui non fa nulla di magico. Se qualcuno non lo usa, sta semplicemente li fermo.
Non conosco la libreria, ma a naso dire che l'oggetto interessante e' il javazoom.jl.player.Player che possiede il metodo play, ma non un metodo pause.
Ora, ci sono due modi per ottenere quello che vuoi tu, entrambi non semplici, ma nemmeno troppo difficili.
Metodo 1) a mio avviso il piu' interessante: ti scarichi i sorgenti della libreria, studi come e' implementato il metodo play ed aggiungi un metodo pause (e sfrutti sempre il metodo play per continuare).
Metodo 2) implementi un PausableBufferedInputStream (bleak che brutto nome )), che si comporta come un BufferedInputStream ma in piu' ha un paio di metodi pause e continue per mettere in pausa e continuare il play.
Il metodo 2) e' decisamente piu' complesso se non conosci la programmazione multithreading ed il concetto di pipe. Concetti semplici da un certo punto di vista, ma che non e' possibile spiegare in un post: sono argomenti di interi libri! O almeno di interi capitoli nei libri di programmazione in Java. In linee generali quello che dovresti fare in questo caso e'
a) derivare PausableBufferedInputStream da BufferedInputStream
b) ridefinire i metodi read in modo non da leggere dal file ma da un buffer popolato da un'altro thread
c) implementare un thread nel PBIS che legge da file e riempie il buffer
d) implementare le regole di sincronizzazione produttore/consumatore sul buffer
e) implementare un oggetto semaforo che il thread nel PBIS controlla ciclicamente
f) implementare i metodi pause e continue che modificano il semaforo
g) sul metodo pause il thread si sospende
h) sul metodo continue il thread viene fatto ripartire.
I concetti di programmazione concorrente li devi avere anche per il metodo 1).
Ma dovrebbe essere piu' semplce implementare i punti e),f),g),h), avendo gia' a disposizione un'infrastruttura funzionante.
Come vedi, non e' proprio immediato .