Я выполняю тест приема аудио AAC / AACPlus с помощью потоковой передачи URL с помощью JAVA JAAD Sound Library (http://jaadec.sourceforge.net/info.php) версия 0.8.4, но качество звука ниже чем трансляция.
Интересно, кто-нибудь имеет представление о том, что это может быть?
Вот код, который я использую.
private static void decodeAndPlayAAC() {
SourceDataLine line = null;
byte[] b ;
final URL url;
try {
/* Link AACPlus Streaming Test */
url = new URL("https://audio7.97fm.com.br/energia");
ADTSDemultiplexer adts = new ADTSDemultiplexer(url.openStream());
byte[] decoderSpecificInfo = adts.getDecoderSpecificInfo();
byte[] frame;
final SampleBuffer buf = new SampleBuffer();
Decoder dec = new Decoder(decoderSpecificInfo);
dec.getConfig().setSBREnabled(false);
while((frame = adts.readNextFrame())!=null) {
dec.decodeFrame(frame, buf);
//the aacFrame array contains the AAC frame to decode
byte[] audio = buf.getData(); //this array contains the raw PCM audio data
if(line == null) {
final AudioFormat aufmt = new AudioFormat(adts.getSampleFrequency(), buf.getBitsPerSample(), 2, true, buf.isBigEndian());
System.out.println(adts.getSampleFrequency() + "" + buf.getBitsPerSample()+ ""+ "" + 2 + "" + true + "" + buf.isBigEndian());
line = AudioSystem.getSourceDataLine(aufmt);
line.open(aufmt);
line.start();
}
line.write(audio, 0, audio.length);
}
} catch (LineUnavailableException | IOException e) {
System.out.println(e);
} finally {
if(line!=null) {
line.stop();
line.close();
}
}
}
public static void main(String[] args) throws Exception {
decodeAndPlayAAC();
}
Качество звука и AM-радио и проблема не в компьютере или соединении. Вы можете проверить это, открыв ссылку AAC прямо в браузере. Может ли кто-нибудь предложить решение или альтернативу?