Java Sound SPIの仕組みが不明?

Java Sound SPIという便利な仕組みで、これを使うと、MP3からWavやOggからWavに変換できて便利なんだけど現在、問題点が一つ、
InputStreamから、MP3なのかWavなのかOggなのか自動判断ができない。
File拡張子からなら判断できるのだろう。
InputStreamではなく、Fileを渡すようプログラムを変更すべきなのだろう。
しかしながら、
現在は、META-INF.servicesのjava.sound.samples.spi.AudioFileReaderを削除して
AudioInputStreamの取得に、
AudioSystemではなく、MPegAudioFileReaderなどのインスタンスを使うことで回避することにした。

JavaSoundは本当に使いやすいのだろうか?と疑問に思う。