создание нового аудиофайла без преобразования данных, но более короткой длины - PullRequest
1 голос
/ 13 сентября 2011

Фрагмент, который получает желаемую длину от общей длины:

Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream( new File( "file.wav") );
clip.open( ais );
long currentPos = clip.getMicrosecondPosition(); // get the current position of clip

После этих шагов, есть ли способ, которым я могу создать новый audio file, без преобразования данных (с сохранением аудиоданных одинаковым) , но его длина равна currentPos?

Т.е. вырезание аудиофайла и уменьшение его размера до currentPos

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Клипы не самые полезные для манипулирования аудиоданными.Я думаю, что вы должны загрузить свой звуковой файл в байтовый массив и поработать над этим.

Чтобы услышать это, вы можете обернуть необработанный звуковой массив в реализацию TargetDataLine.Реализация TDL дает вам ловушки для запуска или остановки где угодно.

Если вы хотите сохранить нарезанные файлы, вы, вероятно, знаете об использовании метода AudioSystem.write (), который принимает AudioInputStream в качестве одного изаргументы.TDL можно обернуть в AIS для этих записей.

Если есть более простой способ сделать это, я с нетерпением жду, чтобы прочитать об этом!

0 голосов
/ 14 сентября 2011

множество инструментов для редактирования аудио могут делать подобные вещи.Попробуйте золотую волну.

...