Звуковые эффекты – небольшие аудио семплы, как правило, не дольше нескольких секунд. Звуковые эффекты воспроизводятся на специальные события в игре, такие как прыжок героя или стрельба из оружия.
Звуковые эффекты могут храниться в различных форматах. libGDX поддерживает форматы файлов MP3, OGG и WAV файлов.
Звуковые эффекты представлены Sound интерфейсом.
Загрузка звукового эффекта происходит при помощи вызова newSound()
метода из audio
модуля libGDX фреймворка:
Sound sound = Gdx.audio.newSound(Gdx.files.internal("data/mysound.mp3"));
Этот код загружает аудио файл с именем "mysound.mp3"
из внутренней директории data
.
Как только звук загружен, мы можем воспроизвести его.
sound.play(1.0f);
Метод play()
воспроизведет звуковой эффект один раз на полной громкости. Метод play()
одного Sound
экземпляра, может быть вызван
несколько раз подряд. Например, для очереди выстрелов в игре, которые будут соответственно накладываться друг на друга.
libGDX предоставляет более тонкое управление. Каждый вызов Sound.play()
возвращает long
идентификатор данного экземпляра звука. С помощью
этого идентификатора мы можем изменить конкретный экземпляр воспроизведения звука:
long id = sound.play(1.0f); // воспроизводит новый звук и сохраняет идентификатор для дальнейших изменений sound.stop(id); // немедленно останавливает воспроизведения экземпляра звука sound.setPitch(id, 2); // увеличивает высоту звука в 2 раза от оригинальной высоты id = sound.play(1.0f); // воспроизводит звук второй раз, рассматривается как другой экземпляр sound.setPan(id, -1, 1); // устанавливает панораму звука в левой стороне на полную громкость sound.setLooping(id); // устанавливаем циклическое воспроизведение sound.stop(id); // останавливает циклического воспроизведения звука
Методы модификации в настоящее время не будут работать на JavaScript/WebGL бекэнде.
Удаление Sound ресурса
Sound
является нативным ресурсом и должен быть удален, если больше не используется в libGDX игре или приложении:
sound.dispose();
Доступ к звуковому эффекту после удаления приведет к неопределенным ошибкам в libGDX игре или приложении.