Звуковые эффекты

Звуковые эффекты – небольшие аудио семплы, как правило, не дольше нескольких секунд. Звуковые эффекты воспроизводятся на специальные события в игре, такие как прыжок героя или стрельба из оружия.

Звуковые эффекты могут храниться в различных форматах. 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 игре или приложении.