Object3D

Audio

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

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

Пример

// создаём AudioListener и привязываем его к камере const listener = new v3d.AudioListener(); 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 : Number

Изменение высоты тона, измеряется в центах. +/- 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 : Number

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

.offset : Number

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

.duration : Number

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

.source : String

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

.sourceType : String

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

.type : String

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

Methods

.connect() → Audio

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

.disconnect() → Audio

Отключить от 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) → Audio

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

.pause() → Audio

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

.onEnded() → null

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

.setBuffer(audioBuffer) → Audio

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

.getDetune() → Float

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

.setFilter(filter) → Audio

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

.setFilters(value : Array) → Audio

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

.setLoop(value : Boolean) → Audio

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

.setLoopStart(value : Float) → Audio

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

.setLoopEnd(value : Float) → Audio

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

.setMediaElementSource(mediaElement) → Audio

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

.setMediaStreamSource(mediaStream) → Audio

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

.setNodeSource(audioNode) → Audio

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

.setPlaybackRate(value : Float) → Audio

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

.setVolume(value : Float) → Audio

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

.stop() → Audio

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

Пазлы

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

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

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