Аудио и видео пазлы (Audio/Video)
Эти пазлы используются для загрузки и воспроизведения аудио и видеофайлов, а также для синтеза МИДИ-звуков.
Содержание
Перечень пазлов
load sound
Загружает аудиофайл по указанному УРЛ. Аудио воспроизводится с помощью тега HTML5 Audio tag или WebAudio API в зависимости от выбранного типа: music или sound/midi соответственно. Этот пазл также добавляет загруженное аудио в кэш памяти, так что при последующем использовании этого пазла с тем же УРЛ-адресом звуковой файл не требует повторной загрузки. Мы рекомендуем использовать формат .mp3, так как он поддерживается большинством веб-браузеров.
preloading audio
Загрузка аудиофайлов занимает некоторое время, поэтому они доступны не сразу. Простое использование этого пазла внутри пазла play может не сработать и звук может не воспроизводиться.
Чтобы быть уверенным в том, что звук в вашем приложении работает правильно, рекомендуется загружать звуковые файлы заранее, например, во вкладке init, которая выполняется перед инициализацией приложения «Вердж3Д». Вы также можете использовать пазл connector, чтобы организовать группу пазлов "load sound" более удобным способом:
После этого использование предварительно загруженных аудиофайлов в main или созданной пользователем вкладке не вызовет никаких проблем. Поскольку звук уже кэшируется после первого использования пазла "load sound", его не нужно загружать снова:
autoplay restrictions
В целом, воспроизведение звука, инициированное программно (как в случае с пазлами), скорее всего, будет заблокировано браузером. Это происходит из-за политики автовоспроизведения, которая ограничивает автоматическое воспроизведение аудио на веб-странице. Цель таких ограничений - не дать веб-страницам издавать спонтанные звуки или воспроизводить аудио, когда это нежелательно, тем самым улучшая общий пользовательский опыт.
Хотя такая политика может быть реализована по-разному в различных браузерах, а также может иметь различные условия для разрешения/неразрешения автовоспроизведения, общее правило для воспроизведения аудио - ждать, пока пользователь взаимодействует с вашей веб-страницей.
Ограничения не накладываются, когда такое взаимодействие уже подразумевается логикой приложения, например, воспроизведение звука при нажатии (будь то 3d-объект или HTML-кнопка). Но, допустим, вы хотите, чтобы в вашем приложении была фоновая музыка, которая начинала бы играть при загрузке приложения. Поскольку это не всегда можно сделать автоматически, хорошим решением будет сделать кнопку "Пуск" для запуска приложения, когда оно загружено и готово. Нажатие на нее считается взаимодействием с пользователем и позволяет запустить воспроизведение аудио.
"music", "sound", "midi" audio type
Этот пазл позволяет выбрать, какой API использовать для загрузки и воспроизведения аудиофайлов.
- music (по умолчанию, HTML5 Audio tag) - следует использовать большую часть времени; лучше подходит для длинных аудиофайлов, например, фоновой музыки
-
sound (WebAudio API) - лучше подходит для коротких аудиофайлов, например
небольшие звуковые эффекты; рекомендуется использовать этот тип только в
следующих случаях:
- короткие, зацикленные (см. пазл play и его опцию loop) звуковые эффекты - "sound" делает зацикленное аудио бесшовным, в то время как с "music" у вас есть заметная задержка;
- звуковые эффекты, которые должны воспроизводиться немедленно, например, при взаимодействии с пользователем, в Сафари воспроизводение идёт с задержкой - "sound" устраняет эту проблему.
- midi (WebAudio API + GM Synth) - особый тип sound, который используется для воспроизведения стандартных МИДИ-файлов (с расширением *.mid). По сравнению с музыкой, хранящейся в *.mp3, МИДИ-файлы действительно легкие и оказывают минимальное влияние на время загрузки приложения. Обратная сторона использования МИДИ — несколько сниженное качество звуковой дорожки.
Web Audio API, который используется типами sound и midi, поддерживается в большинстве
современных браузеров. Однако, если вам нужно, чтобы аудио работало в браузерах
без поддержки Web Audio (например, Интернет Эксплорер 11), вам придется использовать
тип music.
Если необходимо использовать тип sound/music в браузерах, где он доступен, и одновременно поддерживать Интернет Эксплорер 11, то рекомендуемое решение - использовать пазл feature available с выбранной опцией Web Audio API, чтобы проверить, доступен API или нет, и в зависимости от этого загрузить аудио с типом music или sound. Вы можете сделать это как для пазла preloading, так и для воспроизведения аудио, как показано ниже:
load video
Создает HTML5-видео элемент и загружает звуковой файл по указанному УРЛ. Этот пазл также добавляет созданный видеоэлемент в кэш памяти, чтобы при последующем использовании этого пазла с тем же УРЛ не загружать тот же звуковой файл снова. Рекомендуется использовать формат .mp4, поскольку он поддерживается большинством веб-браузеров.
Пазл load video не создает никаких видимых элементов на сцене. Чтобы сделать его видимым, назначьте видеотекстуру материалам с помощью пазла replace texture.
play
Запускает воспроизведение аудио или видео. Флажок loop повторяет воспроизведение, если он включен.
Из-за ограничений браузера (не позволяющих вредоносным веб-сайтам воспроизводить шумные звуки и видео) вы не должны выполнять этот пазл для автоматического воспроизведения ваших ассетов (при загрузке сцены). Вместо этого, вы должны сделать это в каком-либо пользовательском событии. Используйте when clicked или event для обработки таких событий.
Из этого правила есть одно исключение. Браузеры позволяют автоматически воспроизводить видео с выключенным звуком. См. пазл mute .
pause
Приостанавливает воспроизведение аудио или видео.
stop
Останавливает воспроизведение аудио или видео. Использование этого пазла эквивалентно использованию пазла pause, а за ним пазла rewind.
rewind
Заставляет аудио или видео ассет воспроизводиться с самого начала.
set playback time
Установка текущего времени воспроизведения аудио/видео в секундах.
Установка времени воспроизведения не поддерживается для ассетов sound (WebAudio).
get playback time
Получение текущего времени воспроизведения аудио/видео в секундах.
Получение времени воспроизведения не поддерживается для ассетов sound (WebAudio).
set playback rate
Установка скорости воспроизведения аудио/видео. Укажите значение <1 для замедления воспроизведения, 1 для нормальной скорости и >1 для увеличения скорости воспроизведения.
Установка скорости воспроизведения не поддерживается для ассетов midi.
set volume
Устанавливает громкость звука. Входная громкость устанавливается в диапазоне 0,0-1,0. Этот пазл также работает для видео со встроенной звуковой дорожкой.
is playing
Проверяет, воспроизводится ли звук или видео.
mute
Отключает звук или видео.
Помимо управления громкостью звука, вы можете использовать этот пазл для автоматического запуска воспроизведения видео. Это возможно, поскольку веб-браузеры позволяют воспроизводить видео с выключенным звуком без участия пользователя.
unmute
Включение звука или видео.
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.
Проблемы с пазлами?
Обращайтесь за помощью на наш форум!