Пакет | flash.media |
Класс | public class StageVideo |
Наследование | StageVideo ![]() ![]() |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Поддержка профилей AIR. В AIR 3 эту функцию поддерживают все устройства AIR for TV и некоторые мобильные устройства. В среде AIR 3 для iOS объект StageVideo для видео H.264 используется с аппаратным декодированием, а также ограниченной поддержкой для функций NetStream. Среда AIR 3 для ОС iOS также поддерживает кодеки On2 и Sorenson с помощью объекта StageVideo. Эта поддержка не подразумевает использование аппаратного декодирования и ограниченной поддержки функций NetStream. В AIR 2.5 она поддерживается только на устройствах AIR for TV. Кроме того, код ActionScript для этой функции в AIR 2.5 для ТВ отличается от кода ActionScript для AIR 3 или Flash Player 10.2. Отличия указаны в описаниях ActionScript. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR». Класс StageVideo не поддерживается в компьютерных системах AIR или профилях extendedDesktop.
Видео, отображенное объектом StageVideo, всегда появляется в прямоугольной области в рабочей области позади всех объектов списка отображения Flash. Поэтому объект StageVideo использует аппаратное ускорение, поддерживая при этом самый распространенный случай отображения видео: прямоугольная область просмотра с наложением на нее элементов управления.
Преимущества использования объекта StageVideo вместо объекта Video:
- более высокая производительность отображения видео благодаря использованию аппаратного ускорения;
- более низкая нагрузка на ЦП;
- Гибкость и креативность при разработке содержимого, например элементов управления видео, которые появляются перед объектом StageVideo.
Поскольку аппаратные средства устройства отображают видео, объект StageVideo будет иметь следующие ограничения целостности по сравнению с объектом Video:
- Для каждого SWF-файла Flash Player разрешает отображать видео не более чем четырем объектам StageVideo одновременно. Однако фактическое ограничение может быть ниже, в зависимости от аппаратных ресурсов устройства. На устройствах AIR for TV одновременное отображение видео возможно только в одном объекте StageVideo.
- Хронометраж видео не синхронизируется с хронометражем содержимого Flash, которое отображается в среде выполнения.
- Область отображения видео может иметь только прямоугольную форму. Нельзя использовать более сложные области отображения, например области, имеющие эллиптическую или неправильную форму.
- Вы не можете вращать видеоролик.
- Вы не можете растровый кэш видеоролик или использовать BitmapData, чтобы получить доступ к нему.
- Вы не можете применить фильтры к видеоролику.
- Нельзя применять преобразования цветов к видео.
- Нельзя применять значение альфа к видео.
- Режимы наложения, применяемые к экранным объектам, которые находятся перед видео, не применяются к видео.
- Видео можно размещать только на границах полных пикселов.
- Хотя визуализация — это наилучшее имеющееся решение для данных аппаратных средств устройства, она не идентична с точностью до пиксела на разных устройствав. Небольшие отклонения имеют место из-за различия платформ и драйверов.
- Несколько устройств не поддерживают все необходимые цветовые пространства. Например, некоторые устройства не поддерживают BT.709, стандарт H.264. В этих случаях можно использовать BT.601 для быстрого отображения.
- Нельзя использовать видео рабочей области с параметрами WMODE, например
normal
,opaque
илиtransparent
. Видео рабочей области во всех режимах, кроме полноэкранного, поддерживает только параметрWMODE=direct
. WMODE не действует в Safari 4 и более поздних версиях, IE 9 и более поздних версиях, а также в среде AIR for TV. - При использовании StageVideo в приложении AIR for Android установите для
colorDepth
значение 32bit в дескрипторе приложения. Использование объекта StageVideo с цветом глубиной 16 бит не поддерживается. - На платформах Android объект StageVideo поддерживается только на тех устройствах, которые работают под управлением Android 3 (Honeycomb) и более поздних версий. Чтобы максимально расширить модельный ряд устройств Android, поддерживающих выполнение приложения, всегда предусматривайте алгоритм отображения видео с использованием объекта Video, когда объект StageVideo недоступен.
Далее приводятся сводные сведения об использовании объекта StageVideo для воспроизведения видео:
- Прослушайте StageVideoAvailabilityEvent. Событие STAGE_VIDEO_AVAILABILITY, чтобы узнать, когда вектор Stage.stageVideos изменился. (Не поддерживается для AIR 2.5 для TV.)
- Если событие StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY сообщает о доступности видео рабочей области, используйте объект Vector
Stage.stageVideos
в обработчике событий для получения доступа к объекту StageVideo. В AIR 2.5 для TV используйтеStage.stageVideos
после визуализации первого кадра SWF. Примечание. Создание объекта StageVideo невозможно. - Подключите объект NetStream с использованием
StageVideo.attachNetStream()
. - Воспроизведение видео использование
NetStream.play ()
. - Прослушивайте событие
StageVideoEvent.RENDER_STATE
на объекте StageVideo, чтобы определить состояние воспроизведения видео. Получение этого события также указывает, что свойства ширины и высоты видео были инициализированы или изменены. - Прослушивайте событие
VideoEvent.RENDER_STATE
на объекте Video. Это событие предлагает те же самые состояния, что и событие StageVideoEvent.RENDER_STATE. Таким образом, его можно также использовать для определения доступности ускорения графического процессора. Получение этого события также указывает, что свойства ширины и высоты видео были инициализированы или изменены. (Не поддерживается для AIR 2.5 для TV.)
Если событие StageVideoEvent.RENDER_STATE
обозначает, что видео не может быть воспроизведено, можно вернуться к использованию объекта Video вместо объекта StageVideo. Это событие отправляется после того, как видео было присоединено к объекту NetStream и воспроизводится. Кроме того, в зависимости от платформы любое изменение состояния воспроизведения может приводить к отправке события. Обработайте событие StageVideoEvent.RENDER_STATE
, чтобы убедиться, что приложение воспроизводит видео или не воспроизводит его.
Если воспроизводящееся видео переходит в полноэкранный режим из режима WMODE, который не поддерживает видео рабочей области, видео рабочей области может стать доступным. Аналогично, если пользователь выходит из полноэкранного режима, видео рабочей области может стать недоступным. В этих случаях вектор Stage.stageVideos изменяется. Чтобы получить уведомление об этом изменении, прослушивайте событие StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABITY. ПРИМЕЧАНИЕ. Это уведомление недоступно в AIR 2.5 для TV.
Дополнительно
Связанные элементы API
flash.events.StageVideoAvailabilityEvent
flash.events.VideoEvent
flash.display.Stage.stageVideos
flash.media.Video
flash.net.NetStream
Свойство | Определено | ||
---|---|---|---|
colorSpaces : Vector.<String> [только для чтения]
Возвращает имена доступных цветовых пространств для этой поверхности видео. | StageVideo | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
depth : int
Уровень глубины объекта StageVideo относительно других объектов StageVideo. | StageVideo | ||
pan : Point
Параметр панорамирования для отображения видео, указанный в качестве объекта Point. | StageVideo | ||
videoHeight : int [только для чтения]
Целое число, задающее высоту видеопотока в пикселах. | StageVideo | ||
videoWidth : int [только для чтения]
Целое число, задающее ширину видеопотока в пикселях. | StageVideo | ||
viewPort : Rectangle
Абсолютные значения положения и размера поверхности видео в пикселах. | StageVideo | ||
zoom : Point
Параметр масштабирования видео, указанный в качестве объекта Point. | StageVideo |
Метод | Определено | ||
---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | |
Задает видеопоток с камеры для отображения в пределах объекта StageVideo в окне приложения, используя графический процессор для визуализации. | StageVideo | ||
Задает видеопоток для отображения в пределах объекта StageVideo в программе. | StageVideo | ||
![]() |
Посылает событие в поток событий. | EventDispatcher | |
![]() |
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | ||
Отправляется объектом StageVideo при изменении состояния визуализации объекта StageVideo. | StageVideo |
colorSpaces | свойство |
colorSpaces:Vector.<String>
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Возвращает имена доступных цветовых пространств для этой поверхности видео. Обычно этот список включает значения BT.601 и BT.709. В некоторых конфигурациях поддерживается только значение BT.601, а это значит, что визуализация видео может не выполняться в правильном цветовом пространстве.
Примечание. На устройствах AIR for TV значение «BT.601» обозначает программное воспроизведение, и значение «BT.709» обозначает аппаратное воспроизведение.
Реализация
public function get colorSpaces():Vector.<String>
depth | свойство |
depth:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Уровень глубины объекта StageVideo относительно других объектов StageVideo.
Объекты StageVideo всегда отображают позади других объектов на рабочей область. Если платформа поддержки больше чем один объект StageVideo, глубина
свойства обозначают уровень глубины объекта StageVideo. Свойство depth
нижнего объекта StageVideo имеет наименьшее значение. Если несколько объектов StageVideo имеют одинаковый параметр глубины, порядок их отображения в объекте stage,stageVideos
Vector определяет их относительную глубину.
Примечание. На устройствах AIR for TV поддерживается только один объект StageVideo. Поэтому данное свойство не применяется на этих устройствах.
Реализация
public function get depth():int
public function set depth(value:int):void
Связанные элементы API
pan | свойство |
pan:Point
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Параметр панорамирования для отображения видео, указанный в качестве объекта Point.
По умолчанию значением pan
является (0,0)
. Это значение по умолчанию позволяет расположить видео по центру прямоугольника, указанного с помощью StageVideo.viewPort
.
Значение pan
действительно, только если свойство zoom
не имеет значение по умолчанию, равное (1.0, 1.0)
. Когда видео отображается в прямоугольнике StageVideo.viewPort
со значением zoom
по умолчанию, платформа изменяет размер видео в соответствии с размером прямоугольника. Поэтому все видео является видимым. Однако, если указан коэффициент масштабирования, видео отображается не полностью. В этом случае можно установить значение pan
для указания вложенного прямоугольника видео, отображаемого в прямоугольнике StageVideo.viewPort
.
Действительные значения свойства pan
находятся в диапазоне от (-1.0, -1.0)
до (1.0, 1.0)
. В частности:
-
Если свойство
pan
имеет значение(-1.0, -1.0)
, верхний левый пиксел видео помещается в верхний левый угол прямоугольникаStageVideo.viewPort
. -
Если свойство
pan
имеет значение(1.0, 1.0)
, нижний правый пиксел видео помещается в нижний правый угол прямоугольникаStageVideo.viewPort
. -
Если свойство
pan
имеет значение(1.0, -1.0)
, верхний правый пиксел видео помещается в верхний правый угол прямоугольникаStageVideo.viewPort
. -
Если свойство
pan
имеет значение(-1.0, 1.0)
, нижний левый пиксел видео помещается в нижний левый угол прямоугольникаStageVideo.viewPort
.
При значениях от -1,0 до 1,0 панорамирование выполняется согласно масштабу.
Если для свойства pan
установлено значение, лежащее за пределами действительного диапазона, создается исключение RangeError
. Среда выполнения восстанавливает последнее действительное значение.
Кроме того, для использования объекта StageVideo необходимо назначить элементу объекта Stage.stageVideos
Vector переменную StageVideo. Если задается свойство pan
переменной StageVideo, базовый элемент Stage.stageVideos
Vector также изменяется. Если впоследствии этот элемент назначается другой переменной StageVideo для воспроизведения другого видео, сбросьте свойство pan
.
Реализация
public function get pan():Point
public function set pan(value:Point):void
Выдает
RangeError — Значение Пункта не допустимо.
|
Связанные элементы API
videoHeight | свойство |
videoHeight:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Целое число, задающее высоту видеопотока в пикселах.
Например, это свойство можно использовать, чтобы пользователь просматривал видео с той же высотой, с какой оно было получено, независимо от размера прямоугольника StageVideo.viewPort
.
Реализация
public function get videoHeight():int
videoWidth | свойство |
videoWidth:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Целое число, задающее ширину видеопотока в пикселах.
Например, это свойство можно использовать, чтобы пользователь просматривал видео с той же шириной, с какой оно было получено, независимо от размера прямоугольника StageVideo.viewPort
.
Реализация
public function get videoWidth():int
viewPort | свойство |
viewPort:Rectangle
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Абсолютные значения положения и размера поверхности видео в пикселах.
Видео располагается относительно верхнего левого угла рабочей области.
Действительные значения свойств x
и y
объекта viewPort
Rectangle находятся в диапазоне от -8192 до 8191. Поэтому можно расположить видео полностью или частично за пределами рабочей области. Можно также сделать размер видео больше размера рабочей области. Для этого установите значения свойств width
и height
свойства viewPort
, чтобы они превышали значения рабочей области.
Реализация
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
Выдает
RangeError — Значение Rectangle недействительно.
|
zoom | свойство |
zoom:Point
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Параметр масштабирования видео, указанный в качестве объекта Point.
Точка масштабирования является масштабным коэффициентом. По умолчанию значением zoom
является (1.0, 1.0)
. При значении по умолчанию видео полностью отображается в прямоугольнике StageVideo.viewPort
.
Действительные значения свойства zoom
находятся в диапазоне от (1.0, 1.0)
до (8.0, 8.0)
. Свойство x
объекта масштаба Point задает значение масштабирования горизонтальных пикселов, а свойство y — значение масштабирования вертикальных пикселов.
Например, если для свойства zoom
установлено значение (2.0, 2.0)
, отображается только половина горизонтальных пикселов и половина вертикальных пикселов в прямоугольнике StageVideo.viewPort
. То есть размер видео соответствует размеру прямоугольника StageVideo.viewPort
, но видео отображается наполовину, создавая эффект двукратного увеличения. Аналогично, если для свойства zoom
установлено значение (8.0, 8.0)
, отображается только 1/8 горизонтальных пикселов и 1/8 вертикальных пикселов в прямоугольнике StageVideo.viewPort
, благодаря чему происходит максимальное восьмикратное увеличение масштаба.
При задании свойства zoom
задайте свойство pan
, чтобы в прямоугольнике StageVideo.viewPort
отображался соответствующий вложенный прямоугольник видео.
Рассмотрим следующий случай, когда полезно установить разные значения для свойств x
и y
объекта Point zoom
. Во-первых, обратите внимание, когда видео отображается в прямоугольнике StageVideo.viewPort
со значением zoom
по умолчанию, платформа изменяет размер видео в соответствии с размером прямоугольника. Если видео точно не масштабируется по размеру прямоугольника StageVideo.viewPort
, оно может отображаться с искажением. То есть пропорции видео и прямоугольника StageVideo.viewPort
не равны. Например, это может произойти, если видео имеет разные ширину и высоту, но свойство StageVideo.viewPort
задает квадрат. Чтобы устранить искажение, задайте разные значения свойств x
и y
объекта Point zoom
. Затем задайте свойство pan
, чтобы в прямоугольнике StageVideo.viewPort
отображался подходящий вложенный прямоугольник видео.
Если для свойства zoom
установлено значение, лежащее за пределами действительного диапазона, создается исключение RangeError
. Среда выполнения восстанавливает последнее действительное значение.
Кроме того, для использования объекта StageVideo необходимо назначить элементу объекта Stage.stageVideos
Vector переменную StageVideo. Если задается свойство zoom
переменной StageVideo, базовый элемент Vector Stage.stageVideos
также изменяется. Если впоследствии этот элемент назначается другой переменной StageVideo для воспроизведения другого видео, сбросьте свойство zoom
.
Реализация
public function get zoom():Point
public function set zoom(value:Point):void
Выдает
RangeError — Значение Point не допустимо.
|
Связанные элементы API
attachCamera | () | метод |
public function attachCamera(theCamera:Camera):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 11.4, AIR 3.4 |
Задает видеопоток с камеры для отображения в пределах объекта StageVideo в окне приложения, используя графический процессор для визуализации.
Примечание. StageVideo для камеры не поддерживается на платформе Android.
Используйте этот метод, чтобы присоединить к объекту StageVideo эфирное видео, захватываемое пользователем в реальном времени. Чтобы разорвать соединение с объектом StageVideo, передайте значение null
.
Параметры
theCamera:Camera — Объект Camera, получающий видеоданные.
|
Связанные элементы API
attachNetStream | () | метод |
public function attachNetStream(netStream:NetStream):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Задает видеопоток для отображения в пределах объекта StageVideo в программе. Видеопоток является видеофайлом, воспроизводимым с помощью NetStream.play(), или имеет значение null
. Видеофайл может храниться в локальной файловой системе или на сервере Flash Media Server. Если аргумент netStream
имеет значение null
, видео больше не воспроизводится в объекте StageVideo.
Перед вызовом метода attachNetStream()
во второй раз вызовите метод close()
подключенного в данный момент объекта NetStream. Вызов метода close()
позволяет высвободить все ресурсы, в том числе аппаратные декодеры, участвующие в воспроизведении видео. Затем можно вызвать метод attachNetStream()
с другим объектом NetStream или значением null
.
Не нужно использовать этот метод, если видеофайл содержит только аудио. Аудиокомпонент видеофайла воспроизводится автоматически при вызове метода NetStream.play()
. Чтобы управлять аудиосодержимым, связанным с видеофайлом, используйте свойство soundTransform
объекта NetStream, воспроизводящего видеофайл.
Параметры
netStream:NetStream — Объект NetStream. Чтобы разорвать соединение с объектом StageVideo, передайте значение null .
|
renderState | Событие |
flash.events.StageVideoEvent
свойство StageVideoEvent.type =
flash.events.StageVideoEvent.RENDER_STATE
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 2.5, Flash Player 10.2 |
Отправляет объектом StageVideo при изменении состояния визуализации объекта StageVideo.
КонстантаStageVideoEvent.RENDER_STATE
определяет значение свойства type
объекта события renderState
.
Это событие имеет следующие свойства:
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; поведение по умолчанию, подлежащее отмене, не определено. |
colorSpace | Доступные цветовые пространства для отображения видео. |
currentTarget | Объект, активно обрабатывающий объект StageVideoEvent с помощью прослушивателя событий. |
status | Обозначает, выполняется ли визуализация (декодирование и отображение) видео на аппаратном или программном уровне или не выполняется вовсе. |
target | Объект StageVideo, изменивший состояние. |
Tue Jun 12 2018, 11:34 AM Z