Как и в этом вопросе, я хотел бы воспроизвести файл WAV в приложении Java, однако мне бы также хотелось иметь возможность приостанавливать, возобновлять и перезапускать звук.Я предполагаю, что могу перезапустить, сделав паузу, а затем просто создав новый звук, но как мне сделать паузу и возобновить в первую очередь?
Для этого идеально подойдет javax.sound.sampled.Clip
, за исключением за тот факт, что большинство реализаций Clip
не будут загружать более 2 секунд стереозвука, 16 бит, 44,1 кГц!По этой причине я разработал BigClip .BigClip
может обрабатывать звуки размером с доступную память.
Обратите внимание, что мой звук составляет ~ 15 минут и 152,8 Мб.Если есть способ сделать это с файлом MP3 (той же длины, 20,8 Мб), это было бы еще лучше.
Конечно.Как упоминалось на информационной странице тега JavaSound ..
Поддержка декодирования MP3
Java Sound API не поддерживает многие форматы сэмплированного звука.В версии 1.6.0_24 Oracle JRE getAudioFileTypes () обычно возвращает {WAVE, AU, AIFF}.MP3-декодер, по крайней мере, находится рядом.Mp3plugin.jar Java Media Framework поддерживает декодирование MP3.
В настоящее время я использую BigClip
& jar mp3plugin.jar в проигрывателе DukeBox.Имея 1024Meg памяти, он может легко загружать как 17:12 1812 Overture , так и 15:38 Bolero (два самых длинных трека в моем списке воспроизведения фаворитов).Я упоминаю «оба», поскольку он будет загружать следующий трек во время воспроизведения текущего.
В качестве отступления, остерегайтесь взглянуть на код, в котором упоминаются пакеты sun.audio
(упомянутые в обоих связанных потоках),Этот пакет и / или его классы могут быть перемещены или удалены в следующем выпуске (по усмотрению Oracle) и не нужны с Java 1.3.