我试图打一些的.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.");
直到字节读取== -1
对于这个特定的文件,我发现了的AudioFormat baseformat是这样的:每个样品,单声道,未知帧大小,125.0帧/秒的MPEG1L1 48000.0赫兹,未知的比特。
则的AudioFormat decodedFormat是这样的:PCM_SIGNED 48000.0赫兹,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);
难道我做错了什么吗? 我不完全理解的是第二行确实,但它已经工作得很好解码使用MP3文件MP3SPI 。
我真的很感激这里的任何指导。