Я изменяю приложение, которое воспроизводит аудиоданные, чтобы записать данные в файл.Поскольку это в настоящее время реализовано, байтовый массив заполняется динамически, и содержимое этого буфера записывается в SourceDataLine каждый раз, когда он заполняется.Я в основном хочу записать этот буфер в файл в указанном формате.
Я прочитал это официальное руководство и наткнулся на этот код, снятый для записи аудиоданных в файл:
File fileOut = new File(someNewPathName);
AudioFileFormat.Type fileType = fileFormat.getType();
if (AudioSystem.isFileTypeSupported(fileType,
audioInputStream)) {
AudioSystem.write(audioInputStream, fileType, fileOut);
}
Из документации API я вижу, что я могу создать AudioInputStream, используя TargetDataLine, однако в моем случае у меня есть SourceDataLine.Я не знаю, как получить данные из моего байтового массива в TargetDataLine, поскольку он реализует метод read () вместо write ().Другие применения AudioInputStream в этой и другой документации рассматривают его как способ чтения из файла, поэтому я немного смущен его использованием с AudioSystem.write ().
Итак, как я могу получить данные из SourceDataLine или непосредственно из буфера в TargetDataLine или AudioInputStream, чтобы их можно было записать в файл?