Spec-Zone.ru › Phaser

Класс: Phaser.Video

Конструктор

new Video(game, key, url)

Объект Video, который получает предварительно загруженное видео из кэша Phaser и управляет его воспроизведением.

В качестве альтернативы он принимает поток getUserMedia с активной веб-камеры и транслирует содержимое этой камеры в видео
(см. метод startMediaStream)

Затем видео можно применить к спрайту в качестве текстуры. Если несколько спрайтов используют одну и ту же текстуру видео и изменяют воспроизведение
(например, вы приостанавливаете видео или переходите к новому времени), то это изменение будет видно во всех спрайтах одновременно.

Из-за ошибки в IE11 вы не можете воспроизводить текстуру видео на спрайт в WebGL. Для IE11 установите режим Canvas.

Если вам нужно, чтобы каждый спрайт мог воспроизводить видео полностью независимо, вам понадобится один объект Video на каждый спрайт.
Пожалуйста, учтите очевидные последствия для производительности и память, необходимую для хранения видео в оперативной памяти.

В некоторых мобильных браузерах, таких как iOS Safari, вы не можете воспроизвести видео, пока пользователь явно не коснётся экрана.
Это работает так же, как разблокировка звука. Phaser будет обрабатывать разблокировку касанием для вас, однако, в отличие от звука,
следует отметить, что каждое видео должно быть разблокировано касанием, а не только первое. Вы можете использовать метод changeSource,
чтобы обойти это ограничение, но см. справку по методу для получения подробностей.

На устройствах с небольшим экраном, особенно iPod и iPhone, видео будет запущено в собственном видеоплеере,
вне браузера Safari. Этого ограничения избежать нельзя, это ограничение, наложенное устройством.

Примечание: в iOS, если вам нужно обнаружить, когда пользователь нажимает кнопку «Готово» (перед окончанием видео),
вам необходимо добавить свой собственный обработчик событий

Параметры
Имя Тип Аргумент По умолчанию Описание
game Phaser.Game

Ссылка на текущую запущенную игру.

key строка | null <необязательно>
null

Ключ файла видео в Phaser.Cache, который будет воспроизводиться этим объектом Video. Установите в значение null или оставьте неопределённым, если вы хотите использовать веб-камеру в качестве источника. См. startMediaStream, чтобы начать захват веб-камеры.

url строка | null <необязательно>
null

Если видео не загружено, вы можете указать здесь полный URL файла (убедитесь, что ключ установлен в null)

Исходный код: gameobjects/Video.js (Строка 38)

Общедоступные свойства

currentTime : number

Текущее время видео в секундах. Если задано, видео попытается перейти к этому моменту времени.

Source code: gameobjects/Video.js (Line 1167)

disableTextureUpload : boolean

Если true, это видео никогда не будет отправлять свои данные изображения на GPU, когда его флаг изменения имеет значение true. Это применимо только в WebGL.

Source code: gameobjects/Video.js (Line 75)

[readonly] duration : number

Продолжительность видео в секундах.

Source code: gameobjects/Video.js (Line 1187)

game : Phaser.Game

Ссылка на запущенную игру.

Source code: gameobjects/Video.js (Line 46)

height : number

Высота видео в пикселях.

Source code: gameobjects/Video.js (Line 64)

isStreaming : boolean

Есть ли источник потокового видео? Например, с веб-камеры.

Source code: gameobjects/Video.js (Line 140)

key : string

Ключ видео в кеше, если оно там хранится. Будет null, если это видео использует веб-камеру.

Default Value
  • null
Source code: gameobjects/Video.js (Line 52)

loop : boolean

Получает или устанавливает, настроено ли видео на циклическое воспроизведение.
Обратите внимание, что в настоящее время некоторые браузеры (например, Chrome) не поддерживают бесшовное циклическое воспроизведение видео.
Если видео еще не установлено, это всегда будет возвращать false.

Source code: gameobjects/Video.js (Line 1360)

mute : boolean

Получает или устанавливает состояние отключения звука видео.

Source code: gameobjects/Video.js (Line 1217)

onAccess : Phaser.Signal

Этот сигнал отправляется, если пользователь разрешает доступ к своей веб-камере.

Source code: gameobjects/Video.js (Line 101)

onChangeSource : Phaser.Signal

Этот сигнал отправляется, если источник видео изменяется. Он отправляет 3 параметра: ссылку на объект Video и новую ширину и высоту нового источника видео.

Source code: gameobjects/Video.js (Line 91)

onComplete : Phaser.Signal

Этот сигнал отправляется, когда видео завершает воспроизведение, т. е. переходит в состояние 'ended'. Специфично для iOS, он также срабатывает, если пользователь нажимает кнопку 'Готово' в любой момент воспроизведения. Видео, настроенные на циклическое воспроизведение, никогда не будут отправлять этот сигнал.

Source code: gameobjects/Video.js (Line 96)

onError : Phaser.Signal

Этот сигнал отправляется, если возникает ошибка при получении разрешения на использование веб-камеры (для потокового видео) или при попытке воспроизвести видеофайл.

Source code: gameobjects/Video.js (Line 106)

onPlay : Phaser.Signal

Этот сигнал отправляется, когда видео начинает воспроизводиться. Он отправляет 3 параметра: ссылку на объект Video, настроен ли циклический режим и скорость воспроизведения.

Source code: gameobjects/Video.js (Line 86)

onTimeout : Phaser.Signal

Этот сигнал отправляется, если при запросе разрешения на использование веб-камеры ответ не получен в течение предела Video.timeout.
Это может быть связано с тем, что пользователь выбрал Not now в окне разрешений или есть задержка в установлении LocalMediaStream.

Source code: gameobjects/Video.js (Line 113)

paused : boolean

Получает или устанавливает состояние паузы видео.
Если видео все еще заблокировано сенсорным вводом (например, на устройствах iOS), этот вызов не оказывает никакого эффекта.

Source code: gameobjects/Video.js (Line 1257)

playbackRate : number

Получает или устанавливает скорость воспроизведения видео. Это скорость, с которой воспроизводится видео.

Source code: gameobjects/Video.js (Line 1337)

[readonly] playing : boolean

True, если видео в данный момент воспроизводится (и не приостановлено и не завершено), иначе false.

Source code: gameobjects/Video.js (Line 1391)

[readonly] progress : number

Прогресс этого видео. Это значение от 0 до 1, где 0 - начало, а 1 - конец видео.

Source code: gameobjects/Video.js (Line 1202)

retry : integer

Текущая попытка повтора.

Source code: gameobjects/Video.js (Line 155)

retryInterval : integer

Количество мс между каждой попыткой мониторинга состояния загрузки видео.

Default Value
  • 500
Source code: gameobjects/Video.js (Line 161)

retryLimit : integer

При запуске воспроизведения видео Phaser будет отслеживать его состояние readyState с помощью вызова setTimeout.
setTimeout происходит один раз каждые Video.retryInterval мс. Он будет продолжать отслеживать состояние видео
таким образом, пока не будет достигнуто значение retryLimit, а затем прервётся.

Значение по умолчанию
  • 20
Исходный код: gameobjects/Video.js (Строка 149)

[только для чтения] snapshot : Phaser.BitmapData

Снимок экрана, сделанный с видео. Изначально он чёрный. Заполните его, вызвав Video.grab().
При вызове BitmapData обновляется с помощью снимка текущего воспроизводимого видео или активного видеопотока.
Если Phaser был скомпилирован без поддержки BitmapData, это свойство всегда будет null.

Исходный код: gameobjects/Video.js (Строка 288)

texture : PIXI.Texture

PIXI.Texture.

Исходный код: gameobjects/Video.js (Строка 263)

textureFrame : Phaser.Frame

Кадр, используемый этим видео для рендеринга.

Исходный код: gameobjects/Video.js (Строка 269)

timeout : integer

Количество мс, разрешённое для истечения, прежде чем сигнал Video.onTimeout будет отправлен во время ожидания доступа к веб-камере.

Значение по умолчанию
  • 15000
Исходный код: gameobjects/Video.js (Строка 119)

touchLocked : boolean

true, если это видео в настоящее время заблокировано в ожидании события касания. Это происходит на некоторых мобильных устройствах, таких как iOS.

Исходный код: gameobjects/Video.js (Строка 81)

type : number

Константа типа этого объекта.

Исходный код: gameobjects/Video.js (Строка 70)

video :HTMLVideoElement

Элемент HTML Video, добавленный в документ.

Исходный код: gameobjects/Video.js (Строка 130)

videoStream :MediaStream

Данные потока видео. Устанавливается только если это Video получает поток с веб-камеры через startMediaStream.

Исходный код: gameobjects/Video.js (Строка 135)

volume : number

Получает или задаёт громкость видео, значение от 0 до 1. Заданное значение ограничено диапазоном от 0 до 1.

Исходный код: gameobjects/Video.js (Строка 1305)

width : number

Ширина видео в пикселях.

Исходный код: gameobjects/Video.js (Строка 58)

Публичные методы

add(object) → {Phaser.Video}

Обновляет заданные объекты отображения, чтобы они использовали данное видео в качестве своей текстуры.
Это заменит любую текущую установленную текстуру.

Параметры
Имя Тип Описание
object Phaser.Sprite | Array.<Phaser.Sprite> | Phaser.Image | Array.<Phaser.Image>

Либо один Sprite/Image, либо массив Sprites/Images.

Возвращаемое значение
Phaser.Video -

Этот объект Video для цепочки вызовов методов.

Исходный код: gameobjects/Video.js (Строка 804)

addToWorld(x, y, anchorX, anchorY, scaleX, scaleY) → {Phaser.Image}

Создаёт новый объект Phaser.Image, назначает данному видео в качестве текстуры, добавляет его в мир и возвращает его.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
x number <необязательно>
0

Координата x для размещения Image.

y number <необязательно>
0

Координата y для размещения Image.

anchorX number <необязательно>
0

Устанавливает точку привязки x для Image. Значение от 0 до 1, где 0 — верхний левый угол, 1 — нижний правый.

anchorY number <необязательно>
0

Устанавливает точку привязки y для Image. Значение от 0 до 1, где 0 — верхний левый угол, 1 — нижний правый.

scaleX number <необязательно>
1

Горизонтальный коэффициент масштабирования Image. Значение 1 означает отсутствие масштабирования. 2 — в два раза больше и т. д.

scaleY number <необязательно>
1

Вертикальный коэффициент масштабирования Image. Значение 1 означает отсутствие масштабирования. 2 — в два раза больше и т. д.

Возвращаемое значение
Phaser.Image -

Новый добавленный объект Image.

Исходный код: gameobjects/Video.js (Строка 833)

changeSource(src, autoplay) → {Phaser.Video}

В некоторых мобильных браузерах видео нельзя воспроизводить, пока пользователь явно не коснётся видео, чтобы разрешить это.
Phaser обрабатывает это с помощью метода setTouchLock. Однако, если у вас 3 разных видео, например, "Intro", "Start" и "Game Over",
разделенные на три разных объекта Video, то пользователю придётся разблокировать каждое из них.

Вы можете избежать этого, используя всего один объект Video и просто изменяя источник видео. После разблокирования элемента Video он остаётся
разблокированным, даже если меняется источник. Поэтому вы можете использовать это себе на пользу, чтобы не заставлять пользователя
снова «касаться» видео.

Как можно догадаться, существуют ограничения. Пока что мы обнаружили, что видео должны быть в одном и том же формате кодирования и битрейта.
Этот метод автоматически обрабатывает изменение размеров видео, но если вы попытаетесь переключиться на другой битрейт, мы обнаружили,
что он не может отобразить новое видео на iOS (браузеры настольных компьютеров справляются лучше).

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

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
src string

Новый URL для изменения video.src.

autoplay boolean <необязательно>
true

Видео должно автоматически воспроизводиться после обновления источника?

Возвращаемое значение
Phaser.Video -

Этот объект Video для цепочки вызовов методов.

Исходный код: gameobjects/Video.js (Строка 954)

complete()

Вызывается при завершении воспроизведения видео (достижении и состоянии завершения).
Отправляет сигнал Video.onComplete.

Исходный код: gameobjects/Video.js (Строка 623)

connectToMediaStream(video, stream) → {Phaser.Video}

Подключается к внешнему потоку медиа для веб-камеры вместо использования локального.

Параметры
Имя Тип Описание
video HTMLVideoElement

Элемент HTML Video, который использует поток.

stream MediaStream

Данные потока видео.

Возвращаемое значение
Phaser.Video -

Этот объект Video для цепочки вызовов методов.

Исходный код: gameobjects/Video.js (Строка 311)

createVideoFromBlob(blob) → {Phaser.Video}

Создаёт новый элемент Video из данного Blob. Blob должен содержать данные видео в правильном закодированном формате.
Этот метод обычно вызывается Phaser.Loader и Phaser.Cache за вас, но доступен для удобства.

Параметры
Имя Тип Описание
blob Blob

Blob, содержащий данные видео: Blob([new Uint8Array(data)])

Возвращаемое значение
Phaser.Video -

Этот объект Video для цепочки вызовов методов.

Исходный код: gameobjects/Video.js (Строка 507)

createVideoFromURL(url, autoplay) → {Phaser.Video}

Создаёт новый элемент Video из заданного URL.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
url string

URL видео.

autoplay boolean <optional>
false

Автоматически начать воспроизведение видео?

Возвращаемое значение
Phaser.Video -

Объект Video для цепочки методов.

Исходный код: gameobjects/Video.js (Строка 530)

destroy()

Удаляет объект Video. Это вызывает Video.stop и затем Video.removeVideoElement.
Если какие-либо Sprites используют это Video в качестве текстуры, вам нужно будет управлять ими самостоятельно.

Исходный код: gameobjects/Video.js (Строка 1141)

grab(clear, alpha, blendMode) → {Phaser.BitmapData}

Извлекает текущую кадр из видео или потока видео и рендерит его в BitmapData Video.snapshot.

Можно задать, нужно ли очистить BitmapData, альфа-канал и режим наложения при отрисовке.

Для более тонкого контроля над извлечением можно вызвать Video.snapshot.copy напрямую с теми же параметрами, что и BitmapData.copy.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
clear boolean <optional>
false

Нужно ли очистить BitmapData перед извлечением видео? Если вы не используете альфа-канал или режим наложения, обычно можно установить это значение в false.

alpha number <optional>
1

Альфа-значение, которое будет установлено для видео перед отрисовкой. Значение от 0 (полностью прозрачно) до 1 (непрозрачно).

blendMode string <optional>
null

Режим наложения, используемый при отрисовке. По умолчанию режим наложения не используется. Это значение Canvas globalCompositeOperation, например, 'lighter' или 'xor'.

Возвращаемое значение
Phaser.BitmapData -

Ссылка на объект Video.snapshot BitmapData для дальнейшей цепочки методов.

Исходный код: gameobjects/Video.js (Строка 1075)

play(loop, playbackRate) → {Phaser.Video}

Начинает воспроизведение видео, если оно ещё не воспроизводится.

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
loop boolean <optional>
false

Зацикливать видео автоматически при достижении конца? Обратите внимание, что некоторые браузеры (например, Chrome) в настоящее время не поддерживают плавную зацикливание видео.

playbackRate number <optional>
1

Скорость воспроизведения видео. 1 — нормальная скорость, 2 — скорость в 2 раза больше и так далее. Нельзя задавать отрицательную скорость воспроизведения.

Возвращаемое значение
Phaser.Video -

Объект Video для цепочки методов.

Исходный код: gameobjects/Video.js (Строка 635)

removeVideoElement()

Удаляет элемент Video из DOM, вызывая parentNode.removeChild на нём.
Также удаляются атрибуты autoplay и src, и ссылка обнуляется.

Исходный код: gameobjects/Video.js (Строка 1111)

render()

Если игра запущена в WebGL, это позволит загрузить текстуру на GPU, если она грязная.
Этот метод вызывается автоматически, если Video используется Sprite, в противном случае вам нужно будет вызвать его в вашей функции отрисовки.
Если вы хотите отключить эту функциональность, установите Video.disableTextureUpload в true.

Исходный код: gameobjects/Video.js (Строка 859)

setTouchLock()

Устанавливает обратный вызов Input Manager touch на Video.unlock.
Необходимо для разблокировки видео на мобильных устройствах. В основном используется внутри.

Исходный код: gameobjects/Video.js (Строка 1033)

startMediaStream(captureAudio, width, height) → {Phaser.Video}

Вместо воспроизведения видеофайла этот метод позволяет вам передавать видеоданные с подключённой веб-камеры.

Как только этот метод будет вызван, браузер попросит у пользователя разрешение на доступ к веб-камере.
Если пользователь разрешит, поток веб-камеры направляется в это Video. Вызовите Video.play для запуска потока.

Если пользователь заблокирует веб-камеру, сигнал onError будет отправлен, содержащий событие NavigatorUserMediaError
или MediaStreamError.

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

Параметры
Имя Тип Аргумент Значение по умолчанию Описание
captureAudio boolean <optional>
false

Определяет, нужно ли записывать звук вместе с видео в потоке видео.

width integer <optional>

Ширина используется для создания потока видео. Если не задано, ширина видео будет установлена в соответствии с шириной источника ввода веб-камеры.

height integer <optional>

Высота используется для создания потока видео. Если не задано, высота видео будет установлена в соответствии с высотой источника ввода веб-камеры.

Возвращаемое значение
Phaser.Video -

Объект Video для цепочки методов или false, если устройство не поддерживает getUserMedia.

Исходный код: gameobjects/Video.js (Строка 337)

stop() → {Phaser.Video}

Останавливает воспроизведение видео.

Удаляет все локально заданные сигналы.

Если вы хотите только приостановить воспроизведение видео, чтобы возобновить его позже, используйте Video.paused = true вместо этого.
Если видео не завершило загрузку, вызов Video.stop не прервёт загрузку. Для этого вам нужно
вызвать Video.destroy вместо этого.

Если вы используете поток видео с веб-камеры, вызов Stop отключит сеанс MediaStream и отключит веб-камеру.

Возвращаемое значение
Phaser.Video -

Этот объект Video для цепочки методов.

Исходный код: gameobjects/Video.js (Строка 723)

unlock()

Включает видео на мобильных устройствах, обычно после первого касания.
Если SoundManager ещё не разблокирован, то он также будет автоматически разблокирован.
Одновременно может быть только одно видео, ожидающее разблокировки.

Исходный код: gameobjects/Video.js (Строка 1046)

updateTexture(event, width, height)

Вызывается автоматически, если изменяется источник видео и обновляются внутренние размеры текстуры.
Затем отправляется сигнал onChangeSource.

Параметры
Имя Тип Аргумент Описание
event объект <необязательно>

Событие, которое вызвало обновление текстуры.

width целое число <необязательно>

Новая ширина видео. Если не определено, используется video.videoWidth.

height целое число <необязательно>

Новая высота видео. Если не определено, используется video.videoHeight.

Исходный код: gameobjects/Video.js (Строка 572)

© 2016 Richard Davey, Photon Storm Ltd.
Licensed under the MIT License.
http://phaser.io/docs/2.6.2/Phaser.Video.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API