Пакет | flash.media |
Класс | public class Video |
Наследование | Video DisplayObject EventDispatcher Object |
Подклассы | VideoPlayer |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
При использовании сервера Flash Media Server объект Video позволяет передавать эфирное видео, захватываемого пользователем, на сервер и транслировать его с сервера другим пользователям. С помощью этих функций можно разрабатывать мультимедийные приложения, такие как простой видеопроигрыватель, видеопроигрыватель с несколькими точками публикации с одного сервера на другой или приложение для обмена видеосодержимым для сообщества пользователей
Flash Player 9 и более поздних версий поддерживает публикацию и воспроизведение FLV-файлов, закодированных с помощью кодека Sorenson Spark или On2 VP6, а также поддерживает альфа-канал. Видеокодек On2 VP6 использует меньшую пропускную способности, чем более старые технологии, и предоставляет дополнительные фильтры подавления блочноcти и реверберации. Дополнительные сведения о воспроизведении видео и поддерживаемых форматах см. в описании класса flash.net.NetStream.
Flash Player 9.0.115.0 и более поздних версий поддерживает множественное отображение для оптимизации качества и производительности визуализации во время выполнения. Для воспроизведения видео проигрыватель Flash Player использует оптимизацию множественного отображения, если свойству smoothing
объекта Video задано значение true
.
Начиная с AIR 25 добавлен новый тег disableMediaCodec
для Android в app.xml. Когда тегу присвоено значение true
, медиакодек отключается и видео декодируется с использованием OpenMax AL. В противном случае медиакодек включен. По умолчанию для этого кодека используется значение false
.
Как и с другими экранными объектами в списке отображения, можно управлять различными свойствами объектов Video. Например, можно перемещать объект Video в рабочей области, используя свойства x
и y
, можно изменять размер с помощью свойств height
и width
и т.д.
Для потокового воспроизведения видео нужно использовать метод attachCamera()
или attachNetStream()
, чтобы прикрепить видео к объекту Video. После этого нужно добавить объект Video в список отображения с помощью метода addChild()
.
Если используется Flash Professional, объект Video можно также поместить в рабочую область, а не добавлять его методом addChild()
. Это делается следующим образом.
- Если панель «Библиотека» скрыта, выберите «Окно» > «Библиотека», чтобы показать ее.
- Добавьте встроенный объект Video в библиотеку, открыв меню «Параметры» справа на строке заголовка панели «Библиотека» и выберите «Создать видео».
- В диалоговом окне «Свойства видео» присвойте имя встроенному объекту Video, которое будет использоваться в библиотеке и нажмите кнопку «ОК».
- Перетащите объект Video в рабочую область и с помощью Инспектора свойств присвойте ему уникальное имя экземпляра, например
my_video
. (Не называйте его Video.)
В программах AIR на компьютере при воспроизведении видео в полноэкранном режиме отключаются все функции управления питанием и экранной заставки (если это разрешено операционной системой).
Примечание. Класс Video не является подклассом класса InteractiveObject, поэтому он не может отправлять события мыши. Однако можно использовать метод addEventListener()
контейнера экранного объекта, содержащего объект Video.
Дополнительно
Связанные элементы API
attachNetStream()
flash.media.Camera.getCamera()
flash.net.NetConnection
flash.net.NetStream
flash.display.DisplayObjectContainer.addChild()
flash.display.Stage.addChild()
Свойство | Определено | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта. | DisplayObject | ||
alpha : Number
Указывает значение альфа-прозрачности заданного объекта. | DisplayObject | ||
blendMode : String
Значение класса BlendMode, задающее режим наложения. | DisplayObject | ||
blendShader : Shader [только для записи]
Задает затенение, используемое при наложении переднего плана на фон. | DisplayObject | ||
cacheAsBitmap : Boolean
При значении true среда выполнения Flash кэширует внутреннее растровое представление экранного объекта. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
Если задано ненулевое значение, данный объект Matrix определяет способ визуализации экранного объекта, когда свойство cacheAsBitmap имеет значение true. | DisplayObject | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
deblocking : int
Указывает тип фильтра, применяемого к дешифрованному видео в ходе последующей обработки. | Video | ||
filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. | DisplayObject | ||
height : Number
Указывает высоту экранного объекта в пикселях. | DisplayObject | ||
loaderInfo : LoaderInfo [только для чтения]
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. | DisplayObject | ||
mask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask. | DisplayObject | ||
metaData : Object
Получает объект метаданных экземпляра DisplayObject, если метаданные хранились вместе с экземпляром этого DisplayObject в SWF-файле через тег PlaceObject4. | DisplayObject | ||
mouseX : Number [только для чтения]
Указывает координату x мыши или курсора пользовательского ввода (в пикселях). | DisplayObject | ||
mouseY : Number [только для чтения]
Указывает координату y мыши или курсора пользовательского ввода (в пикселях). | DisplayObject | ||
name : String
Указывает имя экземпляра DisplayObject. | DisplayObject | ||
opaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. | DisplayObject | ||
parent : DisplayObjectContainer [только для чтения]
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. | DisplayObject | ||
root : DisplayObject [только для чтения]
В случае с экранным объектом в загруженном SWF-файле свойством root является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом. | DisplayObject | ||
rotation : Number
Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах). | DisplayObject | ||
rotationX : Number
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному вышестоящему контейнеру. | DisplayObject | ||
rotationY : Number
Обозначает угол поворота в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. | DisplayObject | ||
rotationZ : Number
Обозначает поворот в градусах по оси z экземпляра DisplayObject от исходной ориентации относительно трехмерного родительского контейнера. | DisplayObject | ||
scale9Grid : Rectangle
Текущая активная сетка масштабирования. | DisplayObject | ||
scaleX : Number
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах). | DisplayObject | ||
scaleY : Number
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах). | DisplayObject | ||
scaleZ : Number
Указывает глубину масштабирования объекта (в процентах) относительно точки регистрации этого объекта. | DisplayObject | ||
scrollRect : Rectangle
Прямоугольная область прокрутки экранного объекта. | DisplayObject | ||
smoothing : Boolean
Определяет, должно ли выполняться сглаживание (интерполяция) видео при масштабировании. | Video | ||
stage : Stage [только для чтения]
Класс Stage экранного объекта. | DisplayObject | ||
transform : flash.geom:Transform
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. | DisplayObject | ||
videoHeight : int [только для чтения]
Целое число, задающее высоту видеопотока в пикселах. | Video | ||
videoWidth : int [только для чтения]
Целое число, задающее ширину видеопотока в пикселах. | Video | ||
visible : Boolean
Определяет видимость экранного объекта. | DisplayObject | ||
width : Number
Указывает ширину экранного объекта в пикселях. | DisplayObject | ||
x : Number
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | ||
y : Number
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | ||
z : Number
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера. | DisplayObject |
Метод | Определено | ||
---|---|---|---|
Создает новый экземпляр Video. | Video | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Задает видеопоток с камеры для отображения в пределах объекта Video в окне приложения. | Video | ||
Задает видеопоток для отображения в пределах объекта Video в окне приложения. | Video | ||
Удаляет отображаемое в данный момент изображение в объекте Video (а не видеопоток). | Video | ||
Посылает событие в поток событий. | EventDispatcher | ||
Возвращает прямоугольник, определяющий область объекта отображения, которая относится к системе координат объекта targetCoordinateSpace. | DisplayObject | ||
Возвращает прямоугольник, определяющий границу объекта отображения по системе координат, определенной параметром targetCoordinateSpace за исключением линий фигур. | DisplayObject | ||
Преобразует объект Point из координат рабочей области (глобальных) в координаты отображаемого объекта (локальные). | DisplayObject | ||
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные). | DisplayObject | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Вычисляет ограничительную рамку экранного объекта, чтобы определить, не перекрывает и не пересекает ли она ограничительную рамку экранного объекта obj. | DisplayObject | ||
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. | DisplayObject | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными). | DisplayObject | ||
Преобразует объект Point из координат экранного объекта (локальных) в координаты рабочей области (глобальные). | DisplayObject | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
deblocking | свойство |
deblocking:int
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указывает тип фильтра, применяемого к дешифрованному видео в ходе последующей обработки. Значение по умолчанию — 0, оно позволяет видеокомпрессору при необходимости применять фильтр подавления блочности.
Сжатие видео может приводить к нежелательным искажениям. Можно использовать свойство deblocking
, чтобы настраивать фильтры, уменьшающие блочность и реверберацию (для видео, сжатого с помощью кодека On2).
Блочностью называются видимая несогласованность между границами соседних квадратов, составляющих каждый видеокадр. Реверберацией называется шум вокруг элементов видеоизображения.
Имеется два фильтра подавления блочности: один в кодеке Sorenson, а другой в On2 VP6. Кроме того, при использовании кодека On2 VP6 становится доступным фильтр подавления реверберации. При настройке фильтров используйте одно из следующих значений.
- 0 — позволяет видеокомпрессору при необходимости применять фильтр подавления блочности.
- 1 — не использует фильтр подавления блочности.
- 2 — использует фильтр подавления блочности Sorenson.
- 3 — (только для кодека On2) использует фильтр подавления блочности On2, но не фильтр подавления реверберации.
- 4 — (только для кодека On2) использует фильтр подавления блочности и реверберации On2.
- 5 — (только для кодека On2) использует фильтр подавления блочности и более производительный фильтр On2 подавления реверберации.
Если при использовании кодека Sorenson для видео выбирается значение больше 2, то по умолчанию используется значение 2.
Использование фильтра подавления блочности оказывает общее влияние на производительность воспроизведения, обычно оно не требуется для широкополосного видео. Если пользовательская система недостаточно мощная, то, если включен фильтр подавления блочноcти, при воспроизведении видео могут возникнуть проблемы.
Реализация
public function get deblocking():int
public function set deblocking(value:int):void
smoothing | свойство |
smoothing:Boolean
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Определяет, должно ли выполняться сглаживание (интерполяция) видео при масштабировании. Для реализации смягчения среда выполнения должна работать в высококачественном режиме. Значение по умолчанию — false
(без сглаживания).
При воспроизведении видео с помощью Flash Player 9.0.115.0 и более поздних версий, этому свойству необходимо задать значение true
, чтобы применить оптимизацию изображения методом множественного отображения.
Реализация
public function get smoothing():Boolean
public function set smoothing(value:Boolean):void
videoHeight | свойство |
videoHeight:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Целое число, задающее высоту видеопотока в пикселах. Для потоков в реальном времени это свойство имеет то же значение, что и свойство Camera.height
объекта Camera, получающего видеопоток. Для записанных видеофайлов это значение является высотой видеоролика. Событие NetStream.Video.DimensionChange отправляется в случае записанных видео, когда это значение изменено.
Например, это свойство можно использовать, чтобы пользователь просматривал видео с сохранением того размера, в каком оно было получено, независимо от действительного размера объекта Video в рабочей области.
Реализация
public function get videoHeight():int
Связанные элементы API
videoWidth | свойство |
videoWidth:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Целое число, задающее ширину видеопотока в пикселах. Для эфирных потоков это свойство имеет то же значение, что и свойство Camera.width
объекта Camera, получающего видеопоток. Для записанных видеофайлов это значение является шириной видеоролика. Событие NetStream.Video.DimensionChange отправляется в случае записанных видео, когда это значение изменено.
Например, это свойство можно использовать, чтобы пользователь просматривал видео с сохранением того размера, в каком оно было получено, независимо от действительного размера объекта Video в рабочей области.
Реализация
public function get videoWidth():int
Связанные элементы API
Video | () | Конструктор |
public function Video(width:int = 320, height:int = 240)
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Создает новый экземпляр Video. Если не заданы значения для свойств width
и height
используются значения по умолчанию. Свойства width и height объекта Video можно настроить и после создания с помощью Video.width
и Video.height
. Когда создается новый объект Video, нулевые значения ширины и высоты не допускаются; при их передаче используются значения по умолчанию.
После создания объекта Video следует вызвать метод DisplayObjectContainer.addChild()
или DisplayObjectContainer.addChildAt()
, чтобы добавить его в родительский объект DisplayObjectContainer.
width:int (default = 320 ) — Ширина видео в пикселях.
| |
height:int (default = 240 ) — Высота видео в пикселях.
|
Пример ( Использование этого примера )
var MyVideo:Video = new Video(); addChild(MyVideo); var MyNC:NetConnection = new NetConnection(); MyNC.connect(null); var MyNS:NetStream = new NetStream(MyNC); MyNS.play("http://www.helpexamples.com/flash/video/clouds.flv"); MyVideo.attachNetStream(MyNS); //the clouds.flv video has metadata we're not using, so create //an error handler to ignore the message generated by the runtime //about the metadata MyNS.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); function asyncErrorHandler(event:AsyncErrorEvent):void { //ignore metadata error message }
attachCamera | () | метод |
public function attachCamera(camera:Camera):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает видеопоток с камеры для отображения в пределах объекта Video в окне приложения.
Используйте этот метод, чтобы присоединить к объекту Video эфирное видео, захватываемое пользователем в реальном времени. Эфирное видео можно воспроизводить локально на том же компьютере или устройстве, с которого оно передается, или передавать на Flash Media Server и затем транслировать его другим пользователям.
Примечание. В приложении AIR для ОС iOS видео, передаваемое камерой, не может быть выведено на экран, когда приложение использует режим визуализации с помощью графического процессора.
Параметры
camera:Camera — Объект Camera, получающий видеоданные. Чтобы разорвать соединение с объектом Video, передайте значение null .
|
Связанные элементы API
Пример
Использование этого примера
Пример использования этого метода см. в примере для метода Camera.getCamera().
attachNetStream | () | метод |
public function attachNetStream(netStream:NetStream):void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Задает видеопоток для отображения в пределах объекта Video в окне приложения. Видеопоток является либо видеофайлом, воспроизводимым методом NetStream.play()
, объектом Camera или имеет значение null
. Если используется видеофайл, его можно сохранить в локальной файловой системе или на сервере Flash Media Server. Если аргумент netStream
имеет значение null
, воспроизведение видео в объекте Video прекращается.
Не нужно использовать этот метод, если видеофайл содержит только аудио. Аудиокомпонент видеофайлов воспроизводится автоматически при вызове метода NetStream.play()
. Чтобы управлять аудиосодержимым, связанным с видеофайлом, используйте свойство soundTransform
объекта NetStream, воспроизводящего видеофайл.
Параметры
netStream:NetStream — Объект NetStream. Чтобы разорвать соединение с объектом Video, передайте значение null .
|
Связанные элементы API
clear | () | метод |
public function clear():void
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Удаляет отображаемое в данный момент изображение в объекте Video (а не видеопоток). Данный метод используется для обработки текущих изображений. Например, можно удалить последнее изображение или отобразить информацию ждущего режима, не скрывая объект Video.
Связанные элементы API
videoURL
. В данном случае, FLV-файл Video.flv находится в том же каталоге, где размещается SWF-файл.
В данном примере код, создающий объекты Video и NetStream, а также вызывающий методы Video.attachNetStream()
и NetStream.play()
, размещен в функции обработчика. Обработчик вызывается только при успешном подключении к объекту NetConnection (другими словами, когда событие netStatus
возвращает объект info
со свойством code, что свидетельствует об успешном выполнении задачи). Рекомендуется перед вызовом NetStream.play()
дождаться успешного подключения.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; public class VideoExample extends Sprite { private var videoURL:String = "Video.flv"; private var connection:NetConnection; private var stream:NetStream; public function VideoExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { stream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); var video:Video = new Video(); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
Tue Jun 12 2018, 11:34 AM Z