Как разделить файл WAV на более мелкие куски, используя Java? - PullRequest
6 голосов
/ 02 октября 2009

У меня очень большой WAV-файл, размером около 100 МБ. Я хотел бы использовать Java для чтения этого файла WAV и разделить его на более мелкие куски для каждых 2 секунд аудио.

Возможно ли сделать это на Java? Не могли бы вы предложить мне API, с помощью которого я могу достичь этого?

Спасибо заранее, Snehal

Ответы [ 3 ]

4 голосов
/ 02 октября 2009

Вы можете использовать AudioInputStream и его AudioFileFormat (который содержит экземпляр AudioFormat ), чтобы знать, что писать (формат, частота дискретизации), вы можете используйте AudioSystem , чтобы написать это.

На основе частоты дискретизации формата вы можете узнать, сколько байтов аудио составляет 2 секунды, и выполнить цикл чтения такого количества байтов из AudioInputStream, записав их в новый файл.

1 голос
/ 02 октября 2009

Вы также можете найти спецификацию для файла wav , которая действительно проста и проста. А затем двоично прочитайте файл и сохраните его снова в меньших разрядах.

Я думаю, что лучше учиться так, а не полагаться на библиотеки.

0 голосов
/ 02 октября 2009

Если вы не заботитесь о долговечности своего кода, тогда Quicktime для Java - хороший выбор для медиа. Он работает на Windows и Mac и будет читать и записывать практически любой аудио (и видео) формат. Недостатком является то, что Apple не поддерживает его в течение многих лет, поэтому, пока он все еще работает, вы вкладываете средства в умирающую технологию.

...