Pacote | flash.media |
Classe | public class StageVideo |
Herança | StageVideo EventDispatcher Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
Suporte ao perfil do AIR: no AIR 3, todos os dispositivos AIR para TV e alguns dispositivos móveis suportam esse recurso. O AIR 3 para iOS utiliza o objeto StageVideo do vídeo de H.264 com a decodificação de hardware, com suporte limitado para a funcionalidade de NetStream. O AIR 3 para iOS também suporta codecs de Sorenson e On2 pelo objeto StageVideo. Este suporte não utiliza a decodificação de hardware e não limita a funcionalidade de NetStream. No AIR 2.5, somente AIR de dispositivos de televisão suporta este recurso. Além disso, ActionScript deste recurso no AIR 2.5 para a televisão é diferente do ActionScript de AIR 3 ou Flash Player 10.2. As diferenças são observadas nas descrições de ActionScript. Consulte Suporte a perfil do AIR para obter mais informações sobre o suporte de API através de múltiplos perfis. A classe StageVideo não é suportada no desktop do AIR ou em perfis de extendedDesktop.
O vídeo exibido pelo objeto StageVideo sempre aparece em uma área retangular no palco, atrás de todos os objetos da lista de exibição do Flash. Portanto, o objeto StageVideo tira proveito da aceleração por hardware, ao mesmo tempo que oferece suporte ao caso mais comum de exibição de vídeo: uma área de exibição retangular recoberta com controles de vídeo.
Os benefícios do uso de um objeto StageVideo em vez do objeto Video são:
- Aumento do desempenho da exibição de vídeo devido ao uso da aceleração por hardware.
- Uso reduzido da CPU.
- Flexibilidade e criatividade para o desenvolvimento do conteúdo, como controles de vídeo, que aparece em frente ao objeto StageVideo.
Como o hardware do dispositivo exibe o vídeo, usar um objeto StageVideo tem as seguintes restrições em comparação com um objeto Video:
- Para cada arquivo SWF, o Flash Player limita a quatro o número de objetos StageVideo que podem ser exibidos simultaneamente. Contudo, o limite real pode ser menor, dependendo dos recursos de hardware do dispositivo. Em dispositivos AIR for TV, apenas um objeto StageVideo pode exibir vídeo de cada vez.
- A temporização do vídeo não é sincronizada com a temporização do conteúdo em Flash exibido pelo tempo de execução.
- A área de exibição de vídeo pode ser somente um retângulo. Não é possível usar áreas de exibição mais avançadas, como formas elípticas ou irregulares.
- Não é possível girar o vídeo.
- Não é possível armazenar o vídeo em cache de bitmap nem usar BitmapData para acessá-lo.
- Não é possível aplicar filtros ao vídeo.
- Não é possível aplicar transformações de cores ao vídeo.
- Não é possível aplicar um valor alfa ao vídeo.
- Os modos de mesclagem que você aplica a objetos de exibição que estão na frente do vídeo não se aplicam ao vídeo.
- É possível posicionar o vídeo somente em limites de pixel cheios.
- Embora a renderização seja a melhor disponível para este determinado hardware de dispositivo, não tem completa identidade de pixel em todos os dispositivos. Ocorrem pequenas variações devido a diferenças de plataforma e driver.
- Alguns dispositivos não suportam todos os espaços de cor obrigatórios. Por exemplo, alguns dispositivos não suportam BT.709, o padrão H.264. Nesses casos você pode usar BT.601 para exibição rápida.
- Você não pode usar o vídeo de palco com configurações WMODE tais como
normal
,opaco
outransparente
. O vídeo de palco suporta somenteWMODE=direto
quando não está no modo de tela inteira. WMODE não tem nenhum efeito no Safari 4 ou superior, no IE 9 ou superior ou no AIR para televisão. - Ao utilizar o StageVideo em um aplicativo do AIR para Android, defina
colorDepth
em 32bit no descritor de aplicativo. A utilização de StageVideo com uma intensidade de cor de 16 bits não é suportada. - No Android, o StageVideo só é compatível em dispositivos com Android 3 (Honeycomb) ou superior. Para ativar o seu aplicativo para executar na seleção mais ampla possível de dispositivos Andróide, sempre forneça a lógica para exibir o vídeo usando objeto Video quando StageVideo não está disponível.
As seguintes etapas resumem como usar um objeto StageVideo para reproduzir um vídeo:
- Escute o evento StageVideoAvailabilityEvent. STAGE_VIDEO_AVAILABILITY para descobrir quando o vetor Stage.stageVideos foi alterado. (Não suportado pelo AIR 2.5 para televisão.)
- Se o evento StageVideoAvailabilityEvent. STAGE_VIDEO_AVAILABILITY informar que o vídeo de palco está disponível, use o objeto Vector
Stage.stageVideos
do manipulador de eventos para acessar um objeto StageVideo. No AIR 2.5 para televisão, acesseStage.stageVideos
depois que o primeiro quadro SWF for renderizado. Nota: não é possível criar um objeto StageVideo. - Anexe um objeto NetStream usando
StageVideo.attachNetStream()
. - Reproduza o vídeo usando
NetStream.play()
. - Escute o evento
StageVideoEvent.RENDER_STATE
no objeto StageVideo para determinar o status da reprodução do vídeo. O recebimento deste evento também indica que as propriedades de largura e de altura do vídeo foram inicializadas ou alteradas. - Escute o evento
VideoEvent. RENDER_STATE
no objeto Video. Este evento fornece os mesmos status que StageVideoEvent. RENDER_STATE; portanto, você também pode usá-lo para determinar se a aceleração de GPU está disponível. O recebimento deste evento também indica que as propriedades de largura e de altura do vídeo foram inicializadas ou alteradas. (Não suportado pelo AIR 2.5 para televisão.)
Se o evento StageVideoEvent.RENDER_STATE
indica que o vídeo não pode ser reproduzido, você pode reverter ao uso de um objeto Video em vez de um objeto StageVideo. Este evento será despachado depois que o vídeo for anexado a um objeto NetStream e estiver sendo reproduzindo. Além disso, dependendo da plataforma, qualquer alteração no status da reprodução pode resultar na emissão do evento. Trate o evento StageVideoEvent.RENDER_STATE
para assegurar-se de que o aplicativo reproduza o vídeo ou que graciosamente não o reproduza.
Se um vídeo em execução entrar no modo de tela inteira a partir do WMODE que não suporta o vídeo de palco, o vídeo de palco poderá ficar disponível. De mesmo modo, se o usuário sair do modo de tela inteira, o vídeo de palco poderá ficar indisponível. Nesses casos, o vetor Stage.stageVideos é alterado. Para receber a notificação dessa alteração, escute o evento StageVideoAvailabilityEvent. STAGE_VIDEO_AVAILABITY. NOTA: esta notificação não está disponível no AIR 2.5 for TV.
Saiba mais
Elementos da API relacionados
flash.events.StageVideoAvailabilityEvent
flash.events.VideoEvent
flash.display.Stage.stageVideos
flash.media.Video
flash.net.NetStream
Propriedade | Definido por | ||
---|---|---|---|
colorSpaces : Vector.<String> [somente leitura]
Retorna os nomes dos espaços de cor disponíveis para esta superfície de vídeo. | StageVideo | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
depth : int
O nível de profundidade de um objeto StageVideo em relação a outros objetos StageVideo. | StageVideo | ||
pan : Point
A configuração de panorâmica para exibir o vídeo, especificada como um objeto Point. | StageVideo | ||
videoHeight : int [somente leitura]
Um número inteiro que especifica a altura do fluxo de vídeo, em pixels. | StageVideo | ||
videoWidth : int [somente leitura]
Um número inteiro que especifica a largura do fluxo de vídeo, em pixels. | StageVideo | ||
viewPort : Rectangle
A posição e o tamanho absolutos da superfície de vídeo em pixels. | StageVideo | ||
zoom : Point
A configuração de zoom do vídeo, especificada como um objeto Point. | StageVideo |
Método | Definido por | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra um objeto de ouvinte de evento em um objeto EventDispatcher, de forma que o ouvinte receba a notificação de um evento. | EventDispatcher | ||
Especifica um fluxo de vídeo de uma câmera a ser exibido dentro dos limites do objeto StageVideo no aplicativo utilizando o GPU para renderização. | StageVideo | ||
Especifica um fluxo de vídeo a ser exibido dentro dos limites do objeto StageVideo no aplicativo. | StageVideo | ||
Envia um evento para o fluxo de eventos. | EventDispatcher | ||
Verifica se o objeto EventDispatcher tem ouvintes registrados para um tipo específico de evento. | EventDispatcher | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Remove um ouvinte do objeto EventDispatcher. | EventDispatcher | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object | ||
Verifica se um ouvinte de evento está registrado nesse objeto EventDispatcher ou em qualquer um de seus ancestrais para o tipo de evento especificado. | EventDispatcher |
Evento | Resumo | Definido por | ||
---|---|---|---|---|
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR ganha o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
[transmissão de evento] Despachado quando o Flash Player ou o aplicativo do AIR perde o foco do sistema operacional e está se tornando inativo. | EventDispatcher | |||
Emitido pelo objeto StageVideo quando o estado de renderização do objeto StageVideo é alterado. | StageVideo |
colorSpaces | propriedade |
colorSpaces:Vector.<String>
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
Retorna os nomes dos espaços de cor disponíveis para esta superfície de vídeo. Normalmente, esta lista inclui "BT.601" e "BT.709". Em algumas configurações, só "BT.601" é compatível, o que significa que um vídeo pode não ser renderizado no espaço de cor correto.
Nota: no AIR para aparelhos de televisão, um valor "BT.601" indica a reprodução de software, e um valor "BT.709" indica a reprodução de hardware.
Implementação
public function get colorSpaces():Vector.<String>
depth | propriedade |
depth:int
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
O nível de profundidade de um objeto StageVideo em relação a outros objetos StageVideo.
Os objetos StageVideo sempre são exibidos atrás de outros objetos no palco. Se uma plataforma oferecer suporte a mais de um objeto StageVideo, a propriedade depth
indicará o nível de profundidade de um objeto StageVideo. A propriedade depth
do objeto StageVideo de baixo tem o menor valor. Se vários objetos StageVideo tiverem a mesma configuração de profundidade, a ordem em que serão exibidos no objeto Vector stage.stageVideos
determina sua profundidade relativa.
Nota: dispositivos AIR for TV oferecem suporte a somente um objeto StageVideo. Portanto, esta propriedade não é aplicável àqueles dispositivos.
Implementação
public function get depth():int
public function set depth(value:int):void
Elementos da API relacionados
pan | propriedade |
pan:Point
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
A configuração de panorâmica para exibir o vídeo, especificada como um objeto Point.
Por padrão, o valor de pan
é (0,0)
. Esse valor padrão centraliza o vídeo no retângulo especificado por StageVideo.viewPort
.
O valor de pan
é significativo somente quando o valor da propriedade zoom
é o valor padrão, (1,0, 1,0)
. Quando um vídeo é exibido no retângulo StageVideo.viewPort
com o valor padrão de zoom
, a plataforma ajusta o vídeo para caber exatamente no retângulo. Portanto, todo o vídeo fica visível. Contudo, se um fator de zoom é especificado, o vídeo inteiro não fica visível. Nesse caso, você pode definir o valor de pan
para especificar qual subretângulo do vídeo mostrar no retângulo StageVideo.viewPort
.
Os valores válidos da propriedade pan
vão de (-1,0, -1,0)
até (1,0, 1,0)
. Especificamente:
-
Um valor de
pan
de(-1,0, -1,0)
posiciona o pixel superior esquerdo do vídeo na posição superior esquerda do retânguloStageVideo.viewPort
. -
Um valor de
pan
de(1,0, 1,0)
posiciona o pixel inferior direito do vídeo na posição inferior direita do retânguloStageVideo.viewPort
. -
Um valor de
pan
de(1,0, -1,0)
posiciona o pixel superior direito do vídeo na posição superior direita do retânguloStageVideo.viewPort
. -
Um valor de
pan
de(-1,0, 1,0)
coloca o pixel inferior esquerdo do vídeo na posição inferior esquerda do retânguloStageVideo.viewPort
.
Valores entre -1,0 e 1,0 aplicam a panorâmica de acordo com a escala.
Se você definir a propriedade pan
com um valor fora do intervalo válido, a exceção RangeError
é lançada. O tempo de execução redefine o valor para o último valor válido.
Além disso, quando você usa um objeto StageVideo, atribui um elemento do objeto Vector Stage.stageVideos
a uma variável StageVideo. Quando você define a propriedade pan
da variável StageVideo, o elemento Vector Stage.stageVideos
subjecente também é alterado. Se, mais tarde, você atribuir esse elemento a outra variável StageVideo para reproduzir outro vídeo, redefina a propriedade pan
.
Implementação
public function get pan():Point
public function set pan(value:Point):void
Lança
RangeError — O valor de Point não é válido.
|
Elementos da API relacionados
videoHeight | propriedade |
videoHeight:int
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
Um número inteiro que especifica a altura do fluxo de vídeo, em pixels.
Talvez você queira usar esta propriedade, por exemplo, para garantir que o usuário veja o vídeo com o mesmo tamanho em que foi capturado, independentemente do tamanho do retângulo StageVideo.viewPort
Implementação
public function get videoHeight():int
videoWidth | propriedade |
videoWidth:int
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
Um número inteiro que especifica a largura do fluxo de vídeo, em pixels.
Talvez você queira usar esta propriedade, por exemplo, para garantir que o usuário veja o vídeo com o mesmo tamanho em que foi capturado, independentemente do tamanho do retângulo StageVideo.viewPort
Implementação
public function get videoWidth():int
viewPort | propriedade |
viewPort:Rectangle
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
A posição e o tamanho absolutos da superfície de vídeo em pixels.
A posição do vídeo é relativa ao canto superior esquerdo do palco.
O intervalo válido das propriedades x
e y
do objeto Rectangle viewPort
é -8192 a 8191. Por isso, você pode posicionar o vídeo completa ou parcialmente fora do palco. Também pode tornar o vídeo maior do que o palco, se tornar as propriedades width
e height
da propriedade viewPort
maiores do que o palco.
Implementação
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
Lança
RangeError — O valor do Retângulo não é válido.
|
zoom | propriedade |
zoom:Point
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
A configuração de zoom do vídeo, especificada como um objeto Point.
O ponto de zoom é um fator de escala. Por padrão, o valor de zoom
é (1,0, 1,0)
. Este valor padrão exibe o vídeo inteiro no retângulo StageVideo.viewPort
.
Os valores válidos da propriedade zoom
vão de (1,0, 1,0)
a (8.0, 8.0)
. A propriedade x
do objeto Point zoom especifica o valor de zoom dos pixels horizontais, e a propriedade y especifica o valor de zoom dos pixels verticais.
Por exemplo, o valor de zoom
(2,0, 2,0)
exibe somente metade dos pixels horizontais e metade dos pixels verticais no retângulo StageVideo.viewPort
. Isto é, o vídeo ainda preenche o retângulo StageVideo.viewPort
, mas somente a metade do vídeo fica visível, criando um efeito de zoom de 2x. Da mesma forma, um valor de zoom
de (8.0, 8.0)
exibe apenas 1/8 dos pixels horizontais e 1/8 dos pixels verticais no retângulo StageVideo.viewPort
, aumentando o zoom até o valor máximo de 8x.
Quando definir a propriedade zoom
, defina a propriedade pan
de modo que o retângulo StageVideo.viewPort
mostre o subretângulo apropriado do vídeo.
Considere a seguinte situação, onde é útil definir um valor diferente para as propriedades x
e y
do objeto Point zoom
. Em primeiro lugar, observe que quando um vídeo é exibido no retângulo StageVideo.viewPort
com o valor padrão de zoom
, a plataforma dimensiona o vídeo de forma que ele caixa exatamente no retângulo. Se o retângulo do vídeo não for dimensionado uniformemente no retângulo StageVideo.viewPort
, a exibição do vídeo pode ficar distorcida. Isto é, as proporções do vídeo e o StageVideo.viewPort
não são iguais. Essa situação pode ocorrer, por exemplo, se o vídeo tiver uma largura diferente da altura, mas a propriedade StageVideo.viewPort
especificar um quadrado. Para resolver a distorção, defina valores diferentes para as propriedades x
e y
do objeto Point zoom
. Em seguida, defina a propriedade pan
para certificar-se de que o retângulo StageVideo.viewPort
mostre o subretângulo apropriado do vídeo.
Se você definir a propriedade zoom
com um valor fora do intervalo válido, a exceção RangeError
será emitida. O tempo de execução redefine o valor para o último valor válido.
Além disso, quando você usa um objeto StageVideo, atribui um elemento do objeto Vector Stage.stageVideos
a uma variável StageVideo. Quando você define a propriedade zoom
da variável StageVideo, o elemento Vector Stage.stageVideos
também é alterado. Se depois você atribuir esse elemento a outra variável StageVideo para reproduzir outro vídeo, redefina a propriedade zoom
.
Implementação
public function get zoom():Point
public function set zoom(value:Point):void
Lança
RangeError — O valor de Point não é válido.
|
Elementos da API relacionados
attachCamera | () | método |
public function attachCamera(theCamera:Camera):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | Flash Player 11.4, AIR 3.4 |
Especifica um fluxo de vídeo de uma câmera a ser exibido dentro dos limites do objeto StageVideo no aplicativo utilizando o GPU para renderização.
Observação: o StageVideo para a câmera não é suportado no Android.
Use esse método para anexar o vídeo capturado ao vivo pelo usuário ao objeto StageVideo. Para desfazer a conexão com o objeto StageVideo, passe null
.
Parâmetros
theCamera:Camera — Um objeto Camera que está capturando dados de vídeo.
|
Elementos da API relacionados
attachNetStream | () | método |
public function attachNetStream(netStream:NetStream):void
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
Especifica um fluxo de vídeo a ser exibido dentro dos limites do objeto StageVideo no aplicativo. O fluxo de vídeo é um arquivo de vídeo reproduzido com NetStream.play() ou null
. Um arquivo de vídeo pode ser armazenado no sistema de arquivos local ou no Flash Media Server. Se o valor do argumento netStream
for null
, o vídeo não será mais reproduzido no objeto StageVideo.
Antes de chamar attachNetStream()
pela segunda vez, chame o método close()
do objeto NetStream anexado. Chamar close()
libera todos os recursos, inclusive decodificadores de hardware envolvidos na reprodução do vídeo. Em seguida, você pode chamar attachNetStream()
com outro objeto NetStream ou com null
.
Você não precisar usar esse método se o arquivo de vídeo contiver apenas áudio; a parte de áudio dos arquivos de vídeo é reproduzida automaticamente quando você chama NetStream.play()
. Para controlar o áudio associado a um arquivo de vídeo, use a propriedade soundTransform
do objeto NetStream que reproduz o arquivo de vídeo.
Parâmetros
netStream:NetStream — Um objeto NetStream. Para desfazer a conexão com o objeto StageVideo, passe null .
|
renderState | Evento |
flash.events.StageVideoEvent
propriedade StageVideoEvent.type =
flash.events.StageVideoEvent.RENDER_STATE
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 2.5, Flash Player 10.2 |
Emitido pelo objeto StageVideo quando o estado de renderização do objeto StageVideo é alterado.
A constanteStageVideoEvent.RENDER_STATE
define o valor da propriedade type
de um objeto de evento renderState
.
Esse evento tem as seguintes propriedades:
Propriedade | Valor |
---|---|
bubbles | false |
cancelable | false ; não há comportamento padrão a ser cancelado. |
colorSpace | Os espaços de cor disponíveis para exibição do vídeo. |
currentTarget | O objeto que está processando ativamente o objeto StageVideoEvent com um ouvinte de evento. |
status | Indica se o vídeo está sendo renderizado (decodificado e exibido) por hardware ou software, ou se a renderização não está acontecendo. |
target | O objeto StageVideo cujo estado foi alterado. |
Wed Jun 13 2018, 11:10 AM Z