Воскресенье, 2017-09-24, 5:46 AM

Поиск
Меню
Категории раздела
Поддержи проект!
Рекомендуем


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

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

Звуковые эффекты могут храниться в различных форматах. Libgdx поддерживает форматы MP3, OGG и WAV файлов.

Звуковые эффекты представлены Sound интерфейсом. Загрузка звуковой эффект происходит следующим образом:

Sound sound = Gdx.audio.newSound(Gdx.files.internal("data/mysound.mp3"));

Это код загружает аудио файл с именем "mysound.mp3" из внутренней директории data.

Как только звук загружен, мы можем воспроизвести его.

sound.play(1.0f);

Этот код воспроизведет звуковой эффект один раз на полной громкости. Метод play() одного Sound экземпляра может быть вызван несколько раз подряд. Например, для очереди выстрелов в игре, и которые будут соответственно накладываться.

Доступно более тонкое управление. Каждый вызов 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 back-end.

Так только звук больше не нужен, убедить что вы его удалили.

sound.dispose();

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