Audio - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать Audio в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

Object3D →

# Audio

Создаёт непозиционный (глобальный) аудиообъект.

Для этого используется Web Audio API.

## Пример

`// создаём AudioListener и привязываем его к камере const listener = new v3d.AudioListener(); app.camera.add(listener); // создаём глобальный источник аудио const sound = new v3d.Audio(listener); // загружаем звук const audioLoader = new v3d.AudioLoader(); audioLoader.load('mysound.mp3', function(buffer) { sound.setBuffer(buffer); sound.setLoop(true); sound.setVolume(0.5); sound.play(); });`

## Конструктор

### Audio(listener : AudioListener)

listener — (обязательный) экземпляр слушателя AudioListener.

## Свойства

### # .autoplay : Boolean

Должно ли воспроизведение начинаться автоматически. По умолчанию `false`.

### # .context : AudioContext

AudioContext слушателя, заданного в конструкторе.

### # .detune : Integer

Изменение высоты тона, измеряется в центах. +/- 100 - это полутон. +/- 1200 - октава. По умолчанию `0`.

### # .filters : Array

Представляет собой массив BiquadFilterNodes. Может использоваться для применения различных фильтров низжего порядка для создания более сложных звуковых эффектов. Фильтры устанавливаются через Audio.setFilter или Audio.setFilters.

### # .gain : GainNode

Узел GainNode, созданный с помощью AudioContext.createGain().

### # .hasPlaybackControl : Boolean

Можно ли управлять воспроизведением с помощью методов play(), pause() и т.д.. По умолчанию `true`.

### # .isPlaying : Boolean

Воспроизводится ли аудио в данный момент.

### # .listener : AudioListener

Ссылка на объект-слушатель.

### # .playbackRate : Float

Скорость воспроизведения. По умолчанию `1`.

### # .offset : Float

Смещение до времени в аудиобуфере, когда должно начаться воспроизведение. Аналогично параметру `offset` в AudioBufferSourceNode.start(). По умолчанию `0`.

### # .duration : Float

Переопределяет длительность аудио. Аналогично параметру `duration` в AudioBufferSourceNode.start(). По умолчанию `undefined` для воспроизведения всего буфера.

### # .source : String

Нода AudioBufferSourceNode, созданная с помощью AudioContext.createBufferSource().

### # .sourceType : String

Тип источника звука. По умолчанию строка `"empty"`.

### # .type : String

Строка, обозначающая тип объекта. Всегда `"Audio"`.

## Методы

### # .connect() → this

Подключить к Audio.source. Внутренний метод, используется при инициализации и при установке/удалении фильтров.

### # .disconnect() → this

Отключить от Audio.source. Внутренний метод, используется при установке/удалении фильтров.

### # .getDetune() → Float

Возвращает коэффициент изменения высоты тона (в центах).

### # .getFilter() → BiquadFilterNode

Возвращает первый элемент массива filters.

### # .getFilters() → Array

Возвращает массив filters.

### # .getLoop() → Boolean

Возвращает значение параметра source.loop (должно ли воспроизведение зацикливаться).

### # .getOutput() → GainNode

Возвращает gainNode.

### # .getPlaybackRate() → Float

Возвращает значение параметра playbackRate.

### # .getVolume(value) → Float

Возвращает текущую громкость.

### # .play(delay) → this

Если hasPlaybackControl равно true, начинает воспроизведение.

### # .pause() → this

Если hasPlaybackControl равно true, приостанавливает воспроизведение.

### # .onEnded()

Вызывается автоматически по окончании воспроизведения.

### # .setBuffer(audioBuffer) → this

Устанавливает audioBuffer в source, и `"buffer"` в sourceType. Если autoplay установлен, также запускает воспроизведение.

### # .getDetune() → Float

Устанавливает коэффициент изменения высоты тона (в центах).

### # .setFilter(filter) → this

Применяет один фильтр к аудио.

### # .setFilters(value : Array) → this

value — массивы фильтров.

Применяет массив фильтров к аудио.

### # .setLoop(value : Boolean) → this

Устанавливает source.loop в `value` (должно ли воспроизведение зацикливаться).

### # .setLoopStart(value : Float) → this

Устанавливает source.loopStart в `value`.

### # .setLoopEnd(value : Float) → this

Устанавливает source.loopEnd в `value`.

### # .setMediaElementSource(mediaElement) → this

Применяет данный объект типа HTMLMediaElement в качестве источника аудио. Также устанавливает hasPlaybackControl в false.

### # .setMediaStreamSource(mediaStream) → this

Применяет данный объект типа MediaStream в качестве источника данного аудио. Также устанавливает hasPlaybackControl в false.

### # .setNodeSource(audioNode) → this

Устанавливает source в audioBuffer и устанавливает sourceType в `"audioNode"`. Также устанавливает hasPlaybackControl в false.

### # .setPlaybackRate(value : Float) → this

Если hasPlaybackControl включен, устанавливает playbackRate в `value`.

### # .setVolume(value : Float) → this

Устанавливает уровень громкости.

### # .stop() → this

Если hasPlaybackControl включен, останавливает воспроизведение.

## Пазлы

«Вердж3Д» поддерживает ряд пазлов аудио, упрощающих работу со звуками и музыкой.

## Исходный файл

О том как получить исходный код этого модуля читайте тут.