У меня есть короткий mp3 файл из которого мне нужно получить сырую аудио-дорожку в виде массива для последующего преобразования Фурье.
Я пытался использовать Jlayer для преобразования mp3 к wav, чтобы затем уже wav расшифровать в массив
Для этого я использую вот такой код:
public class Main {
public static void main(String[] args) {
try{
String sourceFile = "nts.mp3";
String targetFile = "out/nts.wav";
AudioInputStream mp3Stream = AudioSystem.getAudioInputStream(new File(sourceFile));
AudioFormat sourceFormat = mp3Stream.getFormat();
AudioFormat convertFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
sourceFormat.getSampleRate(), 16,
sourceFormat.getChannels(),
sourceFormat.getChannels() * 2,
sourceFormat.getSampleRate(),
false);
AudioInputStream converted = AudioSystem.getAudioInputStream(convertFormat, mp3Stream);
AudioSystem.write(converted, AudioFileFormat.Type.WAVE, new File(targetFile));
}catch (Exception e){
e.printStackTrace();
}
}
}
Однако в converted я получаю поток полностью забитый нулями
К проекту подключены tritonus_share-0.3.6.jar, mp3spi1.9.5.jar, jl1.0.1.jar
В чем может быть ошибка?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В классе Scanner есть для int метод nextInt(), для double метод nextDouble(), для String метод nextLine(), а какой есть для char?
Можно ли переписать этот код с помощью Stream Api, как это будет выглядеть?