私が最後に使用した解決策は、このファイル形式のサポートも必要なため、最初にWaveファイルの一部(つまり、xxxミリ秒からxxxミリ秒)を再生するコードを作成することでした。そのためのコードは次のとおりです。
File soundFile = new File(this.audioFilePath);
AudioInputStream originalAudioInputStream = AudioSystem.getAudioInputStream(soundFile);
AudioFormat audioFormat = originalAudioInputStream.getFormat();
float startInBytes = (startTimeinMs / 1000 * audioFormat.getSampleRate() * audioFormat.getFrameSize());
float lengthInFrames = ((endTimeinMs - startTimeinMs) / 1000 * audioFormat.getSampleRate());
originalAudioInputStream.skip((long) startInBytes);
AudioInputStream partAudioInputStream = new AudioInputStream(originalAudioInputStream,
originalAudioInputStream.getFormat(), (long) lengthInFrames);
// code to actually play the audio input stream here
これが機能したら、MP3を一時的なwaveファイルに変換するためにこのコードを作成しました(これは上記のコードで使用できます)-これはJLayerとMP3SPIを使用しています。最初にファイルに書き出すことなく、変換されたオーディオストリームに対して上記を直接実行しようとしましたが、機能させることができませんでした。私は即座に変換/書き込みを行う小さなMP3ファイルのみを使用しているので、このソリューションに満足しています。
File soundFile = new File(this.inputFilePath);
AudioInputStream mp3InputStream = AudioSystem.getAudioInputStream(soundFile);
AudioFormat baseFormat = mp3InputStream.getFormat();
AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, baseFormat.getSampleRate(), 16, baseFormat.getChannels(), baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);
AudioInputStream convertedAudioInputStream = AudioSystem.getAudioInputStream(decodedFormat, mp3InputStream);
File outputFile = new File(this.outputFilePath);
AudioSystem.write(convertedAudioInputStream, AudioFileFormat.Type.WAVE, outputFile);