На этой странице представлена информация только о возможностях аудио в 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 для звука, на который влияет точность (например, диалог символов или звуковые эффекты). |
Воспроизведение аудио и безопасность браузера
По соображениям безопасности браузеры не разрешают воспроизведение звука до тех пор, пока конечный пользователь не взаимодействует с веб-страницей вашего приложения с помощью щелчка мыши, сенсорного события или нажатия клавиши. Используйте экран загрузки, чтобы позволить конечному пользователю взаимодействовать с вашим приложением и начать воспроизведение звука до того, как начнется ваш основной контент.