Приостановка mp3 в java
В настоящее время я работаю над проектом, в котором мне нужно воспроизвести фоновый mp3-звук. Мне удалось это сделать с помощью библиотеки Jlayer и фрагмента кода, найденного здесь
Однако мне нужно было добавить некоторые дополнительные функции в этот код, такие как воспроизведение цикла и пауза.
Функцию цикла было довольно легко реализовать, но я часами искал способ приостановить и возобновить mp3-файлы.
Мое предположение было бы использовать метод play (int frames) в классе Player, используя метод getPosition() и общее количество кадров в mp3, но мне не удалось получить общее количество кадров.
Любая подсказка? Мне просто нужен этот метод паузы / возобновления, поэтому, если вы знаете один из способов, отличных от этого, не стесняйтесь писать
я также пробовал кое-что с библиотекой BasicPlayer (ссылка здесь), но я всегда получаю исключение javax.sound.sampled.UnsupportedAudioFileException при попытке прочитать любой файл mp3
2 ответа
Вы не можете сделать это с реализацией Player по умолчанию.
Вам необходимо реализовать потоковые классы и прочитать данные этих классов DataSourceLine. Это немного тяжелая работа, но это возможно. Я сделал это 2 года назад, если я нашел свой код, я отправлю его вам.
Стандартный Java Sound обеспечивает всю функциональность, изложенную в вопросе. Чтобы добавить поддержку MP3 (декодирования) в Java Sound, добавьте mp3plugin.jar (из JMF) в путь к классам приложения.