いくつかの.m4aファイルを再生しようとしていますが、JAADはAACのデコードのみをサポートしていることを理解していますが、sourceDataLineを取得できる曲があり、それらを再生しようとすると、次のような動作が発生します。これ:
読み取り:1024バイト。
読み取り:512バイト。
読み取り:-1バイト。
これを実行する場合:
// read from the input
bytesRead = audioInputStream.read(tempBuffer, 0, tempBuffer.length);
System.out.println("We read: " + bytesRead + " bytes.");
bytesRead==-1まで
この特定のファイルの場合、AudioFormatベースフォーマットは次のようになります:MPEG1L1 48000.0 Hz、サンプルあたりの不明なビット、モノラル、不明なフレームサイズ、125.0フレーム/秒。
次に、AudioFormatのdecodeFormatは次のようになります:PCM_SIGNED 48000.0 Hz、16ビット、モノラル、2バイト/フレーム、リトルエンディアン
次のコード行を使用して変換を行います。
AudioFormat baseFormat = audioInputStream.getFormat();
AudioFormat decodedFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(),
16,
baseFormat.getChannels(),
baseFormat.getChannels() * 2,
baseFormat.getSampleRate(),
false);
私はここで何か間違ったことをしていますか?その2行目が実際に機能することを完全には理解していませんが、MP3SPIを使用してMP3ファイルをデコードするために問題なく機能しています。
ここでのガイダンスを本当にいただければ幸いです。