Я пытаюсь воспроизвести некоторые файлы .m4a, и я понимаю, что JAAD поддерживает только декодирование AAC, но есть песни, с которыми я могу получить sourceDataLine, а затем, когда я пытаюсь их воспроизвести, я получаю следующее:Javasound не воспроизводит файлы .m4a через JAAD (SPI)
Мы читаем: 1024 байта.
Мы читаем: 512 байт.
Мы читаем: -1 байт.
Когда не работает так:
// read from the input
bytesRead = audioInputStream.read(tempBuffer, 0, tempBuffer.length);
System.out.println("We read: " + bytesRead + " bytes.");
до прочитанных байт == -1
Для этого конкретного файла, я получаю AudioFormat baseformat быть таким: MPEG1L1 48000,0 Гц, неизвестные бит на сэмпл , моно, неизвестный размер кадра, 125,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.
Я действительно ценю любое руководство здесь.
Я скоро буду выкладывать всю эту информацию, это выходные для меня, и здесь все тяжело. Спасибо за информацию, хотя! Если это закончится для меня исправлением, я отчитаю – Nico