Tutorials

Audio Effects

Щелкните на разные кнопки чтобы ощутить разные звуковые эффекты

Для этого урока необходима поддержка браузером Web Audio API

Использование Web Audio API

PlayCanvas позволяет вам полностью использовать потенциал Web Audio API чтобы добавить потрясающие эффекты для вашего звукового сопровождения. Этот урок демонстрирует как добавить разные эффекты к аудио дорожке.

Настройка

Вы можете проверить эту сцену собственноручно здесь. Корневая сущность этой сцены имеет [звуковой] компонент с одним слотом, который проигрывает зацикленный звуковой семпл. Если вы не чувствуете себя уверенно при работе со звуковыми компонентами, убедитесь, что знакомы с основами.

Корневая сущность так же имеет компонент [скрипт] с добавленными двумя скриптами. Первый из них отвечает за пользовательский интерфейс, а на второй мы обратим наше внимание в application.js.

Этот скрипт управляет звуковыми эффектами приложения.

Использование AudioNodes

Web Audio API дает вам возможность создать разные звуковые устройства - node, которые вы можете соединять вместе, формируя последовательный граф. Когда звуковая дорожка проигрывается, она проходит через каждое устройство и в конце выводит на устройство вывода звука - например, ваши динамики. Вы можете узнать более подробно об этом здесь

В этом примере мы используем Convolver node. В скрипте нашего приложения мы создаем следующие устройства:

this.convolver = this.app.systems.sound.context.createConvolver();

Теперь мы используем насколько аудио дорожек как импульс, исходящий от конвольвера как объяснено здесь. Каждая аудио дорожка это аудио-ресурс, и в зависимости от того. какую кнопку вы нажмете, мы будем использовать нужный ресурс и назначим буфер этого ресурса на конвольвер следующим образом:

var asset = this[assetName];
this.convolver.buffer = asset.resource.buffer;

Затем мы подключаем конвольвер к нашему звуковому слоту следующим образом:

this.entity.sound.slot('speech').setExternalNodes(this.convolver);

Если вы кликните на кнопке 'None' вы очистите все звуковые эффекты, что на самом деле вызывает clearExternalNodes слота:

this.entity.sound.slot('speech').clearExternalNodes();

Если у вас большой граф аудио устройств и вы хотите присоединить его к слоту, вам нужно поставить первое и последние устройства графа в setExternalNodes. Таким образом, PlayCanvas корректно присоединит последнее устройство к динамикам.

Вы можете найти больше информации о Sound Component API здесь

This site is translated by the community. If you want to get involved visit this page