>>455
>>>450のコードでも
>whileの前にSystem.out.println("drain");を加えたけど音がならなかったけど
>その手前にあるwavファイルへの出力削ったら音がしたから、ファイル出力でバッファが空になるようだね

ファイル出力削ったらっというのがよくわからないのだけれども、try{ AudioSystem.write あたりを削除したってことですか?
自分の環境でそこを削除してwhileの前にSystem.out.println("drain");を書いてみましたがなりませんでした