Как с помощью java резать mp3 файлы?

Пользователь

от nikko , в категории: Java , год назад

Как с помощью java резать mp3 файлы?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от lilla.herman , год назад

@nikko 

Для резки MP3 файлов с помощью Java вы можете использовать библиотеку JAVE (Java Audio Video Encoder). Вот пример, показывающий, как использовать эту библиотеку для разделения MP3 файла на две части:

  1. Подключите библиотеку JAVE к вашему проекту. Добавьте следующую зависимость в ваш файл pom.xml:
1
2
3
4
5
<dependency>
    <groupId>ws.schild</groupId>
    <artifactId>jt-ffmpeg</artifactId>
    <version>1.0</version>
</dependency>


  1. Создайте класс MP3Cutter и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import ws.schild.jave.*;

public class MP3Cutter {
    public static void main(String[] args) {
        String inputFile = "input.mp3";
        String outputFile1 = "output1.mp3";
        String outputFile2 = "output2.mp3";

        try {
            // Создаем объекты File для входного и выходных файлов
            File file = new File(inputFile);
            File target1 = new File(outputFile1);
            File target2 = new File(outputFile2);

            // Создаем экземпляр объекта AudioAttributes
            AudioAttributes audio = new AudioAttributes();
            audio.setCodec("libmp3lame");
            audio.setBitRate(new Integer(128000));
            audio.setChannels(new Integer(2));
            audio.setSamplingRate(new Integer(44100));

            // Создаем экземпляр объекта EncodingAttributes
            EncodingAttributes attrs1 = new EncodingAttributes();
            attrs1.setFormat("mp3");
            attrs1.setAudioAttributes(audio);

            EncodingAttributes attrs2 = new EncodingAttributes();
            attrs2.setFormat("mp3");
            attrs2.setAudioAttributes(audio);

            // Создаем экземпляр объекта Encoder
            Encoder encoder = new Encoder();

            // Резка первой части
            long startTime1 = 0;
            long endTime1 = file.length() / 2;
            attrs1.setDuration(endTime1 - startTime1);
            MultimediaObject multimediaObject1 = new MultimediaObject(file);
            multimediaObject1.setOffsetInMilliseconds(startTime1);
            encoder.encode(multimediaObject1, target1, attrs1);

            // Резка второй части
            long startTime2 = file.length() / 2 + 1;
            long endTime2 = file.length();
            attrs2.setDuration(endTime2 - startTime2);
            MultimediaObject multimediaObject2 = new MultimediaObject(file);
            multimediaObject2.setOffsetInMilliseconds(startTime2);
            encoder.encode(multimediaObject2, target2, attrs2);

            System.out.println("MP3 файл успешно разделен.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


  1. Замените значения переменных inputFile, outputFile1 и outputFile2 на пути к вашим файлам ввода и выхода.
  2. Запустите приложение, и оно разделит MP3 файл input.mp3 на две части, сохраняя их в output1.mp3 и output2.mp3 соответственно.


Обратите внимание, что для работы этого примера у вас должен быть установлен FFMpeg на вашей машине и добавлен в системный путь (PATH).

Пользователь

от miguel_ritchie , 8 месяцев назад

@nikko 

Пример выше использует библиотеку JAVE (более известную как Jave), которая является оберткой Java для FFmpeg. Он выполняет резку MP3 файла на две части. Важно учитывать следующие моменты:

  1. Настройка проекта: Для использования JAVE в проекте, вы должны добавить зависимость в файл pom.xml (если вы используете Maven). Убедитесь, что Maven будет загружать зависимости в ваш проект.
  2. FFmpeg: Примеры, предоставленные выше, работают с предположением, что FFmpeg уже установлен на вашей машине и доступен в вашем системном PATH. Если FFmpeg не установлен, вы можете скачать его и установить на свою машину. После установки добавьте FFmpeg в системный PATH.
  3. Предосторожности: Учитывайте, что этот пример разделит MP3 файл просто на две равные части по времени, что может привести к разрывам в файле (несколько тактов музыкального произведения могут быть обрезаны). Вы можете настроить это поведение, учитывая формат и продолжительность MP3 файла.
  4. Обработка ошибок: Указанный пример обрабатывает исключения. Рекомендуется улучшить обработку исключений и управление ресурсами для более надежной работы программы.
  5. Запуск: После настройки проекта и подготовки MP3 файла, вы можете запустить программу и проверить, создаются ли две новых MP3 файла, соответствующие двум частям оригинального файла.


Учтите все ограничения, чтобы успешно использовать этот код для резки MP3 файлов с помощью Java.