Object3D

Audio

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

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

Пример кода

// create an AudioListener and add it to the camera const listener = new v3d.AudioListener(); camera.add(listener); // create a global audio source const sound = new v3d.Audio(listener); // load a sound and set it as the Audio object's buffer const audioLoader = new v3d.AudioLoader(); audioLoader.load('sounds/ambient.ogg', function(buffer) { sound.setBuffer(buffer); sound.setLoop(true); sound.setVolume(0.5); sound.play(); });

Примеры

webaudio / sandbox
webaudio / visualizer

Конструктор

Audio(listener : AudioListener)

listener — (необходимый) экземпляр AudioListener.

Свойства

.autoplay : Boolean

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

.context : AudioContext

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

.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

Ссылка на listener object данного аудио.

.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. Используется внутренне при установке/удалении фильтров.

.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, также запускается воспроизведение.

.setFilter(filter) → Audio

Применяет один BiquadFilterNode к аудио.

.setFilters(value : Array) → Audio

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

.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 включен, останавливает воспроизведение.

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

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