Paquete | flash.media |
Clase | public class StageVideo |
Herencia | StageVideo EventDispatcher Object |
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
Compatibilidad con perfil de AIR: en AIR 3, todos los dispositivos AIR para TV y algunos dispositivos móviles admiten esta característica. AIR 3 for iOS utiliza el objeto StageVideo para vídeo H. 264 con decodificación de hardware; admite de forma limitada la funcionalidad NetStream. AIR 3 for iOS también admite códecs On2 y Sorenson a través del objeto StageVideo. Este soporte no utiliza decodificación de hardware y no limita la funcionalidad NetStream. En AIR 2.5, sólo dispositivos de AIR para TV admiten esta característica. Además, ActionScript para esta función en AIR 2.5 para TV es diferente del ActionScript para AIR 3 o Flash Player 10.2. Las diferencias se incluyen en las descripciones de ActionScript. Consulte Compatibilidad con perfil de AIR para obtener información sobre la compatibilidad de la API con varios perfiles. La clase StageVideo no se admite en perfiles de AIR para escritorio o extendedDesktop.
El vídeo mostrado por el objeto StageVideo siempre aparece en un área rectangular en el escenario detrás todos los objetos de la lista de visualización de Flash. Por lo tanto, el objeto StageVideo aprovecha la ventaja de la aceleración de hardware al tiempo que apoya el caso más habitual para mostrar vídeo: un área de visualización rectangular superpuesta con controles de vídeo.
Las ventajas a la utilización de un objeto StageVideo en lugar del objeto Video son:
- Mejora el rendimiento de visualización de vídeo, al utilizar la aceleración de hardware.
- Disminuye el uso de la CPU.
- Flexibilidad y la creatividad para el desarrollo de contenido, como controles de vídeo, que aparece delante del objeto StageVideo.
Debido a que el hardware del dispositivo muestra el vídeo, el uso de un objeto StageVideo tiene las siguientes limitaciones en comparación con un objeto Video:
- Para cada archivo SWF, Flash Player limita el número de objetos StageVideo que pueden mostrar simultáneamente vídeos. Sin embargo, el límite real puede ser inferior, en función de los recursos de hardware del dispositivo. En dispositivos de AIR para TV , sólo puede mostrar vídeo un objeto StageVideo a la vez .
- La duración del vídeo no está sincronizada con el calendario del contenido de Flash que muestra el motor de ejecución.
- El área de la pantalla de vídeo sólo puede ser un rectángulo. No se puede utilizar áreas de visualización más avanzadas, como formas elípticas o irregulares.
- No se puede girar el vídeo.
- No se puede guardar el vídeo en la caché de mapa de bits ni utilizar BitmapData para acceder.
- No se pueden aplicar filtros al vídeo.
- No se pueden aplicar transformaciones de color al vídeo.
- No se puede aplicar un valor alfa para el vídeo.
- Los modos de mezcla que se aplican a los objetos de visualización que se encuentran delante del vídeo no se aplican al vídeo.
- Se puede colocar el vídeo únicamente en los límites de píxeles.
- Aunque el procesamiento es el mejor disponible para el hardware del dispositivo determinado, no es 100% “idéntico en píxeles” en todos los dispositivos. Pueden producirse ligeras variaciones debido al controlador y a diferencias de la plataforma.
- Algunos dispositivos no admiten todos espacios de color. Por ejemplo, algunos dispositivos no admiten BT.709, el estándar H. 264. En estos casos se puede utilizar BT.601 para una visualización rápida.
- No se puede utilizar vídeo del escenario con ajustes de WMODE como
normal
,opaque
otransparent
. El vídeo del escenario solo admiteWMODE=direct
si no está en modo de pantalla completa. WMODE no surte ningún efecto en Safari 4 o posterior, IE 9 o posterior ni en AIR para TV. - Si utiliza StageVideo en una aplicación de AIR for Android, establezca
colorDepth
en 32bit en el descriptor de la aplicación. Utilizar StageVideo con profundidad de color de 16 bits no está admitido. - En Android, StageVideo solo se admite en dispositivos con Android 3 (Honeycomb) y posteriores. Para permitir que la aplicación se ejecute en la selección más amplia posible de dispositivos Android, proporcione siempre la lógica para mostrar vídeos con el objeto Video cuando StageVideo no esté disponible.
Los pasos siguientes resumen cómo utilizar un objeto StageVideo para reproducir un vídeo:
- Detecte el evento StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY para saber cuándo cambia el vector Stage.stageVideos. (No admitido en AIR 2.5 para TV.)
- Si el evento StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY informa que el escenario está disponible, utilice el objeto vectorial
Stage.stageVideos
dentro del controlador de eventos para acceder a un objeto StageVideo. En AIR 2.5 para TV, acceda aStage.stageVideos
después de haberse procesado el primer fotograma SWF. Nota No se puede crear un objeto StageVideo. - Adjunte un objeto NetStream con
StageVideo.attachNetStream()
. - Reproduzca el vídeo con
NetStream.play()
. - Detecte el evento
StageVideoEvent.RENDER_STATE
en el objeto StageVideo para determinar el estado de reproducción del vídeo. La recepción de este evento también indica que las propiedades width y height del vídeo se han inicializado o han cambiado. - Detecte el evento
VideoEvent.RENDER_STATE
en el objeto Video. Este evento proporciona los mismos estados que StageVideoEvent.RENDER_STATE, de modo que también puede utilizarlo para determinar si la aceleración por GPU está disponible. La recepción de este evento también indica que las propiedades width y height del vídeo se han inicializado o han cambiado. (No admitido en AIR 2.5 para TV.)
Si un evento StageVideoEvent.RENDER_STATE
indica que el vídeo no puede reproducirse, puede volver a la utilización de un objeto Video en lugar de un objeto StageVideo. Este evento se distribuye después de haber asociado vídeo a un objeto NetStream y cuando se reproduce. Asimismo, dependiendo de la plataforma, cualquier cambio en el estado de la reproducción puede dar como resultado en el envío el evento. Gestione el evento StageVideoEvent.RENDER_STATE
para asegurarse de que la aplicación reproduce el vídeo o no.
Si la ejecución de un vídeo entra en modo de pantalla completa desde WMODE sin admitir vídeo del escenario, podrá utilizar ahora el vídeo del escenario. Asimismo, si el usuario sale del modo de pantalla completa, el vídeo del escenario puede aparecen como no disponible. En estos casos, el vector Stage.stageVideos cambia. Para recibir una notificación de este cambio, detecte el evento StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABITY. NOTA: esta notificación no está disponible en AIR 2.5 para TV.
Más información
Elementos de API relacionados
flash.events.StageVideoAvailabilityEvent
flash.events.VideoEvent
flash.display.Stage.stageVideos
flash.media.Video
flash.net.NetStream
Propiedad | Definido por | ||
---|---|---|---|
colorSpaces : Vector.<String> [solo lectura]
Devuelve los nombres de los espacios de color disponibles para esta superficie de vídeo. | StageVideo | ||
constructor : Object
Una referencia a la clase de objeto o función constructora para una instancia de objeto determinada. | Object | ||
depth : int
El nivel de profundidad de un objeto StageVideo con respecto a los otros objetos StageVideo. | StageVideo | ||
pan : Point
La configuración de desplazamiento horizontal para mostrar el vídeo, especificada como un objeto Point. | StageVideo | ||
videoHeight : int [solo lectura]
Un entero que especifica la altura del flujo de vídeo en píxeles. | StageVideo | ||
videoWidth : int [solo lectura]
Un entero que especifica la anchura del flujo de vídeo en píxeles. | StageVideo | ||
viewPort : Rectangle
La posición y tamaño absolutos de la superficie del vídeo, en píxeles. | StageVideo | ||
zoom : Point
La configuración de zoom del vídeo, especificada como un objeto Point. | StageVideo |
Método | Definido por | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un objeto de detector de eventos con un objeto EventDispatcher, de modo que el detector reciba la notificación de un evento. | EventDispatcher | ||
Especifica un flujo de vídeo de una cámara para que se muestre dentro de los límites del objeto StageVideo en la aplicación, aprovechando la GPU para el procesamiento. | StageVideo | ||
Especifica un flujo de vídeo para que se muestre dentro de los límites del objeto StageVideo en la aplicación. | StageVideo | ||
Distribuye un evento en el flujo del evento. | EventDispatcher | ||
Comprueba si el objeto EventDispatcher tiene detectores registrados para un tipo concreto de evento. | EventDispatcher | ||
Indica si un objeto tiene definida una propiedad especificada. | Object | ||
Indica si hay una instancia de la clase Object en la cadena de prototipo del objeto especificado como parámetro. | Object | ||
Indica si existe la propiedad especificada y si es enumerable. | Object | ||
Elimina un detector del objeto EventDispatcher. | EventDispatcher | ||
Establece la disponibilidad de una propiedad dinámica para operaciones de bucle. | Object | ||
Devuelve la representación de cadena de este objeto, con formato según las convenciones específicas de configuración regional. | Object | ||
Devuelve la representación de cadena del objeto especificado. | Object | ||
Devuelve el valor simple del objeto especificado. | Object | ||
Comprueba si hay registrado un detector de eventos con este objeto EventDispatcher o con cualquiera de sus ascendientes para el tipo de evento concreto. | EventDispatcher |
Evento | Resumen | Definido por | ||
---|---|---|---|---|
[evento broadcast] Se distribuye cuando Flash Player o AIR pasan a estar activos. | EventDispatcher | |||
[evento broadcast] Se distribuye cuando Flash Player o de AIR pasan a estar inactivos. | EventDispatcher | |||
Lo distribuye el objeto StageVideo cuando cambia el estado de procesamiento del objeto StageVideo. | StageVideo |
colorSpaces | propiedad |
colorSpaces:Vector.<String>
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
Devuelve los nombres de los espacios de color disponibles para esta superficie de vídeo. Normalmente esta lista incluye "BT.601" y "BT.709". En algunas configuraciones, sólo se admite "BT.601", lo que significa que un vídeo posiblemente no se procesa en el espacio de color correcto.
Nota: en dispositivos de AIR para TV, un valor de "BT.601" indica reproducción por software y un valor de "BT.709" indica reproducción por hardware.
Implementación
public function get colorSpaces():Vector.<String>
depth | propiedad |
depth:int
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
El nivel de profundidad de un objeto StageVideo con respecto a los otros objetos StageVideo.
Los objetos StageVideo siempre se muestran detrás de otros objetos en el escenario. Si una plataforma admite más de un objeto StageVideo, la propiedad depth
indica un nivel de profundidad del objeto StageVideo. La parte inferior de la propiedad depth
del objeto StageVideo tiene el valor más pequeño. Si hay varios objetos StageVideo con el mismo valor de profundidad, el orden en que aparecen en el vector stage,stageVideos
determina su profundidad relativa.
Nota: los dispositivos de AIR para TV admiten solo un objeto StageVideo. Por lo tanto, esta propiedad no es aplicable para dichos dispositivos.
Implementación
public function get depth():int
public function set depth(value:int):void
Elementos de API relacionados
pan | propiedad |
pan:Point
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
La configuración de desplazamiento horizontal para mostrar el vídeo, especificada como un objeto Point.
De forma predeterminada, el valor de pan
es (0,0)
. Este valor predeterminado centra el vídeo en el rectángulo especificado por StageVideo.viewPort
.
El valor de pan
es significativo sólo cuando el valor de la propiedad zoom
no es el valor predeterminado (1.0, 1.0)
. Cuando un vídeo se visualiza en el rectángulo StageVideo.viewPort
con el valor predeterminado de zoom
, la plataforma cambia el tamaño del vídeo para que se ajuste exactamente en el rectángulo. Por lo tanto, todo el vídeo es visible. Sin embargo, si está especificado un factor de zoom, no todo el vídeo está visible. En este caso, se puede establecer el valor de pan
para especificar qué subrectángulo del vídeo se muestra en el rectángulo StageVideo.viewPort
.
Los valores válidos de la propiedad pan
van de (-1.0, -1.0)
a (1.0, 1.0)
. Concretamente:
-
Un valor
pan
de(-1.0, -1.0)
coloca el píxel superior izquierdo del vídeo situado en la esquina superior izquierda del rectánguloStageVideo.viewPort
. -
Un valor
pan
de(-1.0, -1.0)
coloca el píxel inferior derecho del vídeo situado en la esquina inferior derecha del rectánguloStageVideo.viewPort
. -
Un valor
pan
de(-1.0, -1.0)
coloca el píxel superior derecho del vídeo situado en la esquina superior derecha del rectánguloStageVideo.viewPort
. -
Un valor
pan
de(-1.0, -1.0)
coloca el píxel inferior izquierdo del vídeo situado en la esquina inferior izquierda del rectánguloStageVideo.viewPort
.
Los valores oscilan entre -1.0 y 1.0 según la escala.
Si se establece la propiedad pan
con un valor fuera del rango válido, se emite una excepción RangeError
. El motor de ejecución restablece el valor en el último valor válido.
También, se debe tener en cuenta que para utilizar un objeto StageVideo se puede asignar un elemento del objeto vectorial stage.stageVideos
a una variable de StageVideo. Cuando se establece la propiedad pan
de la StageVideo variable, el elemento vectorial stage.stageVideos
subyacente también cambia. Si más tarde se asigna ese elemento a otra variable de StageVideo para reproducir otro vídeo, se debe restablecer la propiedad pan
.
Implementación
public function get pan():Point
public function set pan(value:Point):void
Emite
RangeError — El valor de Point no es válido.
|
Elementos de API relacionados
videoHeight | propiedad |
videoHeight:int
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
Un entero que especifica la altura del flujo de vídeo en píxeles.
Puede utilizar esta propiedad, por ejemplo, para asegurarse de que el usuario está viendo el vídeo con la misma altura con el que se capturó, con independencia del tamaño real del objeto rectángulo StageVideo.viewPort
.
Implementación
public function get videoHeight():int
videoWidth | propiedad |
videoWidth:int
[solo lectura] Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
Un entero que especifica la anchura del flujo de vídeo en píxeles.
Puede utilizar esta propiedad, por ejemplo, para asegurarse de que el usuario está viendo el vídeo con la misma anchura con el que se capturó, con independencia del tamaño real del objeto rectángulo StageVideo.viewPort
.
Implementación
public function get videoWidth():int
viewPort | propiedad |
viewPort:Rectangle
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
La posición y tamaño absolutos de la superficie del vídeo, en píxeles.
La posición del vídeo es relativa a la esquina superior izquierda del escenario.
El rango válido de las propiedades x
e y
del objeto Rectangle viewPort
oscila entre -8192 y 8191. Por lo tanto, puede situar el vídeo completa o parcialmente fuera del escenario. También puede hacer que el vídeo sea más grande que el escenario si hace las propiedades width
y height
del objeto viewPort
más grandes que el escenario.
Implementación
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
Emite
RangeError — El valor de Rectangle no es válido.
|
zoom | propiedad |
zoom:Point
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
La configuración de zoom del vídeo, especificada como un objeto Point.
El punto del zoom es un factor de escala. De forma predeterminada, el valor de zoom
es (1.0, 1.0)
. Este valor predeterminado muestra todo el vídeo en el rectángulo StageVideo.viewPort
.
Los valores válidos de la propiedad zoom
van de (1.0, 1.0)
a (8.0, 8.0)
. La propiedad x
del objeto zoom Point especifica el valor de zoom para píxeles horizontales, y la propiedad y especifica el valor de zoom para píxeles verticales.
Por ejemplo, un valor de zoom
de (2.0, 2.0)
muestra sólo la mitad del píxeles horizontales y la mitad de píxeles verticales en el rectángulo StageVideo.viewPort
. Es decir, el vídeo sigue rellenando el rectánguloStageVideo.viewPort
, pero sólo la mitad del vídeo es visible, creando un efecto zoom 2x. Asimismo, un valor de zoom
de (8.0, 8.0)
muestra únicamente 1/8 de píxeles horizontales y 1/8 de píxeles verticales del rectángulo StageVideo.viewPort
, ampliando la imagen en la cantidad máxima de 8x.
Cuando establezca la propiedadzoom
, defina la propiedad pan
de tal manera que el rectángulo StageVideo.viewPort
muestre el subrectángulo adecuado del vídeo.
Tenga en cuenta la siguiente situación donde es útil para establecer otro valor para las propiedades x
e y
del objeto zoom
Point. En primer lugar, hay que tener en cuenta que cuando un vídeo se visualiza en el rectángulo StageVideo.viewPort
con el valor predeterminado de zoom
, la plataforma cambia el tamaño del vídeo para que se ajuste exactamente en el rectángulo. Si el rectángulo del vídeo no se escala uniformemente al rectángulo StageVideo.viewPort
, la pantalla del vídeo podría aparecer distorsionada. Es decir, las proporciones de aspecto del vídeo y el StageVideo.viewPort
no son iguales. Este caso puede darse, por ejemplo, si el vídeo tiene un ancho y altura diferentes, pero la propiedad StageVideo.viewPort
especifica un cuadrado. Para resolver la distorsión, defina valores diferentes para las propiedades x
e y
del objeto zoom
Point. A continuación, defina la propiedad pan
para asegurarse de que el rectángulo StageVideo.viewPort
muestra el subrectángulo adecuado del vídeo.
Si se define la propiedad zoom
con un valor fuera del rango válido, se emite una excepción RangeError
. El motor de ejecución restablece el valor en el último valor válido.
También, se debe tener en cuenta que para utilizar un objeto StageVideo se puede asignar un elemento del objeto vectorial stage.stageVideos
a una variable de StageVideo. Cuando se establece la propiedad zoom
de la variable StageVideo, el elemento vectorial subyacente Stage.stageVideos
también cambia. Si más tarde se asigna ese elemento a otra variable de StageVideo para reproducir otro vídeo, se debe restablecer la propiedad zoom
.
Implementación
public function get zoom():Point
public function set zoom(value:Point):void
Emite
RangeError — El valor de Point no es válido.
|
Elementos de API relacionados
attachCamera | () | método |
public function attachCamera(theCamera:Camera):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | Flash Player 11.4, AIR 3.4 |
Especifica un flujo de vídeo de una cámara para que se muestre dentro de los límites del objeto StageVideo en la aplicación, aprovechando la GPU para el procesamiento.
Nota: StageVideo para cámara no es compatible con Android.
Utilice este método para conectar el vídeo en vivo capturado por el usuario al objeto StageVideo. Para perder la conexión al objeto StageVideo, transmita un valor null
.
Parámetros
theCamera:Camera — Objeto Camera que captura datos de vídeo.
|
Elementos de API relacionados
attachNetStream | () | método |
public function attachNetStream(netStream:NetStream):void
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
Especifica un flujo de vídeo para que se muestre dentro de los límites del objeto StageVideo en la aplicación. La transmisión de vídeo es un archivo de vídeo que se reproduce con NetStream.play() o null
. Un archivo de vídeo se puede almacenar en el sistema de archivos local o en Flash Media Server. Si el valor del argumento netStream
es null
, el vídeo ya no se reproduce en el objeto StageVideo.
Antes de llamar a attachNetStream()
una segunda vez, llame al método close()
del objeto NetStream asociado actualmente. Al llamar a close()
se liberan todos los recursos, incluidos los descodificadores de hardware implicados en la reproducción del vídeo. A continuación, se puede llamar a attachNetStream()
ya sea con otro objeto NetStream o null
.
No es necesario que utilice este método si el archivo de vídeo sólo contiene audio; la parte de audio de los archivos de vídeo se reproduce automáticamente cuando se llama a NetStream.play()
. Para controlar el audio asociado a un archivo de vídeo, utilice la propiedad soundTransform
del objeto NetStream que reproduzca el archivo de vídeo.
Parámetros
netStream:NetStream — Un objeto NetStream. Para perder la conexión al objeto StageVideo, transmita un valor null .
|
renderState | Evento |
flash.events.StageVideoEvent
propiedad StageVideoEvent.type =
flash.events.StageVideoEvent.RENDER_STATE
Versión del lenguaje: | ActionScript 3.0 |
Versiones de motor de ejecución: | AIR 2.5, Flash Player 10.2 |
Lo distribuye el objeto StageVideo cuando cambia el estado de procesamiento del objeto StageVideo.
La constanteStageVideoEvent.RENDER_STATE
define el valor de la propiedad type
de un objeto de evento renderState
.
Este evento tiene las propiedades siguientes:
Propiedad | Valor |
---|---|
bubbles | false |
cancelable | false ; no hay ningún comportamiento predeterminado que cancelar. |
colorSpace | Los espacios de color disponibles para mostrar el vídeo. |
currentTarget | Objeto que procesa de forma activa el objeto de evento StageVideoEvent con un detector de eventos. |
status | Indica si el vídeo se está representando (descodificado y mostrado) con el hardware o software, o en absoluto. |
target | El objeto StageVideo que cambió de estado. |
Tue Jun 12 2018, 02:12 PM Z