Аудио и видео пазлы (Audio/Video)
Эти пазлы используются для загрузки и воспроизведения аудио и видеофайлов, а также для синтеза и воспроизведения MIDI-звуков.

Содержание
Перечень пазлов
load sound
Загружает аудиофайл по указанному УРЛ. Аудио воспроизводится с помощью WebAudio API или HTML-элемента <audio>
в зависимости от выбранного типа: sound/midi или music соответственно. Этот пазл также добавляет загруженное аудио в кэш, так что при последующем использовании этого пазла с тем же УРЛ-адресом звуковой файл не требует повторной загрузки. Мы рекомендуем использовать формат .mp3, так как он поддерживается большинством веб-браузеров.

Данная функциональность используется в демо-приложении «Приключения фермера» (исходные файлы доступны в магазине ассетов).
предзагрузка аудио
Загрузка аудиофайлов занимает некоторое время, поэтому они доступны не сразу. Простое использование этого пазла внутри пазла play может не сработать и звук может не воспроизводиться.
Чтобы быть уверенным в том, что звук в вашем приложении работает правильно, рекомендуется загружать звуковые файлы заранее, например, во вкладке init, которая выполняется перед инициализацией приложения «Вердж3Д». Вы также можете использовать пазл connector, чтобы организовать группу пазлов "load sound" более удобным способом:

После этого использование предварительно загруженных аудиофайлов в главной или созданной пользователем вкладке не вызовет никаких проблем. Поскольку звук кэшируется после первого использования пазла "load sound", его не нужно загружать снова:

ограничения автоматического воспроизведения
В целом, запущенное программно воспроизведение (как в случае с пазлами), скорее всего, будет заблокировано браузером. Это происходит из-за политики автовоспроизведения, которая ограничивает автоматическое воспроизведение аудио на веб-странице. Цель таких ограничений — не дать веб-страницам издавать спонтанные звуки или воспроизводить аудио, когда это нежелательно.
Хотя такая политика может быть реализована по-разному в различных браузерах, а также может иметь различные условия для разрешения/неразрешения автовоспроизведения, общее правило для воспроизведения аудио — ждать, пока пользователь взаимодействует с вашей веб-страницей.
Ограничения не накладываются, когда такое взаимодействие уже подразумевается логикой приложения, например, воспроизведение звука при нажатии (будь то 3Д-объект или HTML-кнопка). Допустим, вы хотите, чтобы в вашем приложении была фоновая музыка, которая начинала бы играть при загрузке приложения. Поскольку это не всегда можно сделать автоматически, хорошим решением будет сделать кнопку "Старт" для запуска приложения, когда оно загружено и готово. Нажатие на нее считается взаимодействием с пользователем и позволяет запустить воспроизведение аудио.
Типы аудио "music", "sound", "midi"
Пазл позволяет выбрать, какой API использовать для загрузки и воспроизведения аудиофайлов.
- sound (по умолчанию)
-
Лучше подходит для коротких аудиофайлов, например небольшие звуковые эффекты; рекомендуется использовать этот тип только в следующих случаях:
- Короткие, зацикленные (см. пазл play и его опцию loop) звуковые эффекты - "sound" делает зацикленное аудио бесшовным, в то время как с "music" у вас есть заметная задержка;
- Звуковые эффекты, которые должны воспроизводиться немедленно, например, при взаимодействии с пользователем, в Сафари воспроизводение идёт с задержкой - "sound" устраняет эту проблему.
- music
- Следует использовать большую часть времени; лучше подходит для длинных аудиофайлов, например, фоновой музыки.
- midi
- Особый тип sound, который используется для воспроизведения стандартных MIDI-файлов (с расширением *.mid). По сравнению с музыкой, хранящейся в *.mp3, MIDI-файлы действительно легкие и оказывают минимальное влияние на время загрузки приложения. Обратная сторона использования MIDI — несколько сниженное качество звуковой дорожки.

load video
Создает HTML-элемент <video>
и загружает видеофайл по указанному УРЛ. Этот пазл также добавляет созданный видеоэлемент в кэш памяти, чтобы при последующем использовании этого пазла с тем же УРЛ не загружать тот же звуковой файл снова. Рекомендуется использовать формат .mp4, поскольку он поддерживается большинством веб-браузеров.

Пазл load video не создает никаких видимых элементов на сцене. Чтобы сделать его видимым, назначьте видео как текстуру материала с помощью пазла replace texture.
Данная функциональность используется в демо-приложении Video Texture (исходные файлы доступны в магазине ассетов).
play
Запускает воспроизведение аудио или видео. Параметр loop служит для зацикливания воспроизведения.

Из-за ограничений браузера (не позволяющих вредоносным веб-сайтам воспроизводить шумные звуки и видео) вы не должны выполнять этот пазл для автоматического воспроизведения ваших ассетов (при загрузке сцены). Вместо этого, вы должны сделать это в каком-либо пользовательском событии. Используйте when clicked или event для обработки таких событий.
Из этого правила есть одно исключение. Браузеры позволяют автоматически воспроизводить видео с выключенным звуком. См. пазл mute .
pause
Приостанавливает воспроизведение аудио или видео.

stop
Останавливает воспроизведение аудио или видео. Использование этого пазла эквивалентно использованию пазла pause, а за ним пазла rewind.

rewind
Заставляет аудио или видео ресурс воспроизводиться с самого начала.

set playback time
Установка текущего времени воспроизведения аудио/видео в секундах.

Установка времени воспроизведения не поддерживается для ассетов sound (WebAudio).
get playback time
Получение текущего места воспроизведения аудио/видео в секундах.

Получение времени воспроизведения не поддерживается для ассетов sound (WebAudio).
get duration
Возвращает длительность аудио/видео ресурса в секундах.

set playback rate
Устанавливает скорость воспроизведения аудио/видео. Укажите значение <1
для замедления воспроизведения, 1
для нормальной скорости и >1
для увеличения скорости воспроизведения.

Установка скорости воспроизведения не поддерживается для ассетов midi.
set volume
Устанавливает громкость звука. Входная громкость устанавливается в диапазоне 0,0-1,0. Этот пазл также работает для видео со встроенной звуковой дорожкой.

is playing
Проверяет, воспроизводится ли звук или видео.

mute
Делает воспроизведение аудио или видео ресурса беззвучным.
Помимо управления громкостью звука, вы можете использовать этот пазл для автоматического запуска воспроизведения видео. Это возможно, поскольку веб-браузеры позволяют воспроизводить видео с выключенным звуком без участия пользователя.

unmute
Включает звук при воспроизведении аудио или видео ресурса.

positional speaker
Делает звуковой ресурс позиционным, посредством прикрепления его к указанному 3Д-объекту.

Ресурсы типа sound и music могут быть превращены в позиционные источники. Для настройки воспроизведения таких источников используются параметры rolloff from – дистанция с которой начнётся уменьшение громкости звука и factor – интенсивность уменьшения с расстоянием.
synth sound
Воспроизведение звука с помощью встроенного General MIDI-совместимого программного синтезатора (на основе библиотеки TinySynth). Поддерживаются различные инструменты и эффекты.

- note on
- Начать воспроизведение note (ноты) с помощью заданного channel (канала) синтезатора с интенсивностью звука, указанной как velocity (скорость) (0-127). Используйте значение at time для указания времени начала воспроизведения в секундах.
- note off
- Останавливает воспроизведение заданной note (ноты).
- set instrument
- Установить инструмент канала из заданного списка.
- set volume
- Установить громкость канала.
- set pan
- Установить уровень pan канала.
- stop sounds
- Остановить все звуки в выбранном канале.
Чтобы воспроизвести ударные, укажите Drums в качестве номера канала и используйте drum number для выбора инструмента.
Пример

note number
Задает номер ноты. Используется для передачи нот в канал 1-9 пазла synth sound.

Номера октав указываются с помощью американской системы нотации, например, C 4 означает До первой октавы.
drum number
Задает номер ударных. Используйте его для передачи нот в канал Drums пазла synth sound.

Проблемы с пазлами?
Обращайтесь за помощью на наш форум!