Аудио и видео пазлы (Audio/Video)

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

Содержание

Перечень пазлов

load sound

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

Данная функциональность используется в демо-приложении «Приключения фермера» (исходные файлы доступны в магазине ассетов).

предзагрузка аудио

Загрузка аудиофайлов занимает некоторое время, поэтому они доступны не сразу. Простое использование этого пазла внутри пазла play может не сработать и звук может не воспроизводиться.

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

Предварительная загрузка аудио во вкладке "init".

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

Использование предварительно загруженного аудио на вкладке "main".

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

В целом, запущенное программно воспроизведение (как в случае с пазлами), скорее всего, будет заблокировано браузером. Это происходит из-за политики автовоспроизведения, которая ограничивает автоматическое воспроизведение аудио на веб-странице. Цель таких ограничений — не дать веб-страницам издавать спонтанные звуки или воспроизводить аудио, когда это нежелательно.

Хотя такая политика может быть реализована по-разному в различных браузерах, а также может иметь различные условия для разрешения/неразрешения автовоспроизведения, общее правило для воспроизведения аудио — ждать, пока пользователь взаимодействует с вашей веб-страницей.

Ограничения не накладываются, когда такое взаимодействие уже подразумевается логикой приложения, например, воспроизведение звука при нажатии (будь то 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.

Проблемы с пазлами?

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