Для любого звука, который дольше нескольких секунд, предпочтительнее его потоковое воспроизведение с диска, место полной загрузки в оперативную память.
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 игре или приложении.