Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Использование аудио в WebGL

На этой странице представлена ​​информация только о возможностях аудио в WebGLJavaScript API, который отображает 2D- и 3D-графику в веб-браузере. Вариант сборки Unity WebGL позволяет Unity публиковать контент в виде программ JavaScript, использующих технологии HTML5 и API рендеринга WebGL для запуска контента Unity в веб-браузере. Подробнее
См. в Словарь
. Чтобы узнать, как использовать аудио в проекте Unity, см. Обзор аудио.

Поскольку Unity использует FMOD для управления звуком для платформ, Unity WebGL поддерживает ограниченную функциональность звука, которая включает только базовые Особенности. FMOD использует потоки, которые WebGL не поддерживает. По этой причине Unity использует реализацию, основанную на внутреннем API веб-аудио, который позволяет браузеру управлять воспроизведением и микшированием аудио.

Примечание. Новая политика автоматического воспроизведения Google Chrome запрещает автоматическое воспроизведение аудио и видео при определенных условиях. Например, хотя ваша игра может быть настроена на автоматическое воспроизведение фоновой музыки вскоре после загрузки игры, она не будет воспроизводиться автоматически, если вы не нажмете или не коснетесь веб-сайта. Дополнительные сведения о том, как включить или отключить эту политику, см. в документации Google Chrome по политике автозапуска в Chrome.

Поддерживаемые классы

Unity WebGL поддерживает следующие классы API:

Класс Статус поддержки WebGL
AudioSource WebGL поддерживает некоторые API. Подробнее о поддержке см. в разделе AudioSource.
AudioListener Поддерживаются все API.
AudioClip WebGL поддерживает некоторые API. Подробнее о поддержке см. в разделе AudioClip.
SystemInfo.supportsAudio Браузер обеспечивает поддержку звука для WebGL. По этой причине SystemInfo.supportsAudio всегда имеет значение true.
Microphone Не поддерживается.

Источник звука

API AudioSource поддерживает базовое позиционное воспроизведение звука, в том числе:

  • Приостановка и возобновление
  • Панорамирование
  • Спад
  • Настройка тона
  • Поддержка эффекта Доплера

Unity WebGL поддерживает следующие API AudioSource:

Свойства Сводка
Clip Определяет аудиоклипконтейнер для аудиоданных в Unity. Unity поддерживает моно-, стерео- и многоканальные аудиоресурсы (до восьми каналов). Unity может импортировать форматы аудиофайлов .aif, .wav, .mp3 и .ogg, а также форматы модуля трекера .xm, .mod, .it и .s3m. Подробнее
См. в Словаре
, что воспроизводится дальше.
dopplerLevel Устанавливает доплеровскую шкалу для AudioSource.
ignoreListenerPause Позволяет AudioSource игнорировать AudioListener.pause и продолжать воспроизводить звук.
ignoreListenerVolume Игнорирует громкость AudioSource конечного пользователя.
isPlaying Возвращает true, если воспроизводится AudioSource.clip.
loop Позволяет приложению зацикливать AudioSource.clip.
maxDistance Устанавливает максимальное расстояние, на котором AudioSource.clip перестает затухать или становится неслышимым.
minDistance Устанавливает минимальное расстояние, на котором AudioSource.clip больше не увеличивает громкость. Звук начинает затухать за пределами минимального расстояния.
mute Отключает звук AudioSource.
pitch Задает высоту звука AudioSource.clip. WebGL поддерживает только положительные значения высоты тона.
playOnAwake Воспроизводит AudioSource при пробуждении.
rolloffMode Устанавливает затухание AudioSource на расстоянии.
time Устанавливает позицию воспроизведения в секундах.
timeSamples Устанавливает позицию воспроизведения в сэмплах с импульсно-кодовой модуляцией (PCM).
velocityUpdateMode Устанавливает, будет ли AudioSource обновляться в фиксированном или динамическом цикле обновления..
volume Устанавливает громкость AudioSource (от 0,0 до 1,0).
Методы Сводка
Pause Приостанавливает AudioSource.clip.
Play Играет AudioSource.clip.
PlayDelayed Играет AudioSource.clip с задержкой, которую вы указываете в секундах.
PlayOneShot Играет AudioClip и масштабирует громкость AudioSource по volumeScale.
PlayScheduled Воспроизводит AudioSource в указанное вами время.
SetScheduledEndTime Устанавливает время окончания запланированного AudioSource.clip.
SetScheduledStartTime Задает время запуска запланированного AudioSource.clip.
Stop Останавливает воспроизведение AudioSource.clip.
UnPause Разблокирует приостановленный AudioSource.clip.
PlayClipAtPoint Воспроизводит AudioSource.clip в заданной позиции в мировом пространстве.

AudioClip

Unity WebGL импортирует файлы AudioClip в формате AAC, который широко поддерживается. Unity WebGL поддерживает следующие API AudioClip:

Свойства Сводка
length Длина аудиоклипа в секундах.
loadState Возвращает текущее состояние загрузки аудиоданных, связанных с AudioClip.
samples Длина AudioClip в сэмплах.
loadType Тип загрузки клипа. Вы можете установить тип загрузки AudioClip в Inspectorокне Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, позволяя вам проверять и редактировать значения. More info
See in Словарь
.
Метод Сводка Дополнительная информация
AudioClip.Create Создает аудиоклип с указанными вами именем и длиной. Unity WebGL частично поддерживает AudioClip.Create. Браузеры не поддерживают динамическую потоковую передачу, поэтому для использования AudioClip.Create установите для параметра Stream значение false.
AudioClip.SetData Устанавливает семпл данных в AudioSource.clip. Unity WebGL частично поддерживает AudioClip.SetData. Вы можете использовать этот метод только для замены содержимого AudioClip. В WebGL Unity игнорирует параметр offsetSample.

Сжатое аудио

Чтобы использовать сжатый звук с WebGL в Unity, установите AudioClip loadType к одному из следующих вариантов:

CompressionМетод хранения данных, который уменьшает объем требуемого дискового пространства. See Texture Compression, Animation Compression, Audio Compression, Build Compression.
See in Словарь
method
Описание Соображения
CompressedInMemory Используйте это, чтобы сжать звук на диске и оставить его сжатым после загрузки в память вашего приложения. Сжатый звук может вызвать задержку и менее точен, когда речь идет о воспроизведении звука. Однако сжатый звук использует меньше памяти в вашем приложении, чем распакованный звук. Лучше всего использовать CompressedInMemory для аудио, на которое не влияет точность, например для фоновой музыки.
DecompressOnLoad Используйте это, чтобы сжать звук на диске, подобно CompressedInMemory, и распаковать его, когда он загружается в память вашего приложения. Распакованный звук использует значительный объем памяти по сравнению со сжатым звуком, но имеет меньшую задержку и большую гибкость звука. Используйте DecompressedOnLoad для звука, на который влияет точность (например, диалог символов или звуковые эффекты).

Воспроизведение аудио и безопасность браузера

По соображениям безопасности браузеры не разрешают воспроизведение звука до тех пор, пока конечный пользователь не взаимодействует с веб-страницей вашего приложения с помощью щелчка мыши, сенсорного события или нажатия клавиши. Используйте экран загрузки, чтобы позволить конечному пользователю взаимодействовать с вашим приложением и начать воспроизведение звука до того, как начнется ваш основной контент.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3