AudioClip
, Clip
, SourceDataLine
не настроены для одновременного воспроизведения.Можно создать несколько аудиоклипов или клипов из общего файла .wav
, и аудиосистема Java будет смешивать их вместе.В этом случае, однако, вам нужно хранить несколько копий аудио в памяти, и звук довольно громоздкий.
Но кодирование одновременного воспроизведения одного аудиофайла не особенно сложно.Относительно простой план - загрузить одну копию файла в память, а затем создать и управлять несколькими «курсорами», которые индексируют в этой области памяти для воспроизведения.Аудиоданные от каждого «курсора» могут быть добавлены вместе и выведены через SourceDataLine
.
. Этот план я использовал для AudioCue , который должен быть своего рода суперClip
, позволяющий в реальном времени изменять громкость, панорамирование и высоту тона, а также одновременное воспроизведение.Я считаю, TinySound - это еще одна аудиотека, которая обеспечивает одновременное воспроизведение.