Потоковое воспроизведение музыки

Для любого звука, который дольше нескольких секунд, предпочтительнее его потоковое воспроизведение с диска, место полной загрузки в оперативную память. libGDX предоставляет Music интерфейс, который позволяет это сделать.

Для загрузки экземпляра музыки мы можем вызвать newMusic() метод из audio модуля libGDX фреймворка:

Music music = Gdx.audio.newMusic(Gdx.files.internal("data/mymusic.mp3"));

Метод newMusic() загружает MP3 файл с именем "mymusic.mp3" из внутренней директории data.

Воспроизведение экземпляра музыки работает следующим образом:

music.play();

Конечно, вы можете установить различные атрибуты Music экземпляра, например:

music.setVolume(0.5f);                 // устанавливает громкость на половину максимального объема
music.setLooping(true);                // повторное воспроизведение, пока не будет вызван music.stop()
music.stop();                          // останавливает воспроизведение
music.pause();                         // приостанавливает воспроизведение
music.play();                          // возобновляет воспроизведение
boolean isPlaying = music.isPlaying(); // проверка воспроизводится ли музыка 
boolean isLooping = music.isLooping(); // проверка установлено ли повторение
float position = music.getPosition();  // возвращает позицию воспроизведения в секундах

Music экземпляры тяжелые и как правило, вы должны иметь не более одного-двух загруженных экземпляров.

Удаление Music ресурса

Music является нативным ресурсом и должен быть удален, если больше не используется в libGDX игре или приложении:

music.dispose();

Доступ к Music экземпляру после удаления приведет к неопределенным ошибкам в libGDX игре или приложении.