вырезать аудиоданные в потоке с помощью java

#java #audio

#java #Аудио

Вопрос:

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

p.s. я хочу записать только 20 секунд из аудиофайла и сохранить эти 20 секунд в другой файл.. я знаю, как записывать в новый файл, но как записать только некоторую часть (20 секунд) аудиофайла

заранее спасибо, Рони

Ответ №1:

Это зависит от формата, который вы используете для записи аудиопотока. Например, если вы используете необработанный (несжатый) звук, 16 бит на сэмпл, стерео и 44 кГц (что означает 44100 сэмплов в секунду), то вам нужно хранить 2 * (16/8) * 44100 байт в секунду. Кроме того, если вы хотите записать какой-то стандартный файл, который смогут прочитать другие приложения, вам нужно будет выбрать формат контейнера. Для необработанного (несжатого) аудио обычно используются файлы Microsoft wave, и для этого потребуется, чтобы вы написали заголовок с некоторыми метаданными в начале вашего файла.

Обновить:

Вы можете попробовать использовать AudioFileWriter.