Pacchetto | flash.media |
Classe | public class StageVideo |
Ereditarietà | StageVideo EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Supporto profilo AIR: in AIR 3, tutti i dispositivi AIR for TV e alcuni dispositivi mobili supportano questa funzionalità. AIR 3 per iOS usa l'oggetto StageVideo per i video H.264 con decodifica hardware, con supporto limitato per la funzionalità NetStream. AIR 3 per iOS supporta anche i codec On2 e Sorenson tramite l'oggetto StageVideo. Questo supporto non sfrutta la decodifica hardware e non limita la funzionalità NetStream. In AIR 2.5, solo i dispositivi AIR per TV supportano questa funzione. Inoltre, ActionScript per questa funzione in AIR 2.5 per TV è diverso da ActionScript per AIR 3 o Flash Player 10.2. Le differenze sono riportate nelle descrizioni di ActionScript. Per ulteriori informazioni sul supporto delle API tra più profili, vedete Supporto dei profili AIR. La classe StageVideo non è supportata nei profili AIR desktop e extendedDesktop.
Il video visualizzato dall'oggetto StageVideo appare sempre in un'area rettangolare sullo stage, in secondo piano rispetto dietro a tutti gli oggetti nell'elenco di visualizzazione di Flash. Pertanto, l'oggetto StageVideo sfrutta l'accelerazione hardware e allo stesso tempo supporta la condizione più comune per la visualizzazione di un video: un'area di visualizzazione rettangolare dotata di controlli di riproduzione.
I vantaggi derivanti dall'uso di un oggetto StageVideo anziché dell'oggetto Video sono i seguenti:
- Prestazioni di visualizzazione migliori grazie all'accelerazione hardware.
- Uso meno intensivo della CPU.
- Flessibilità e creatività nello sviluppo di contenuti, ad esempio controlli video, visualizzati davanti all'oggetto StageVideo.
Poiché il video viene visualizzato dall'hardware del dispositivo, un oggetto StageVideo presenta i seguenti vincoli rispetto a un oggetto Video:
- Per ogni file SWF, Flash Player limita a 4 il numero di oggetti StageVideo che possono visualizzare video contemporaneamente. Il limite effettivo può tuttavia essere inferiore, a seconda delle risorse hardware del dispositivo. Nei dispositivi AIR per TV, un solo oggetto StageVideo alla volta può visualizzare un video.
- La temporizzazione video non è sincronizzata con la temporizzazione del contenuto Flash visualizzato dal runtime.
- L'area di visualizzazione del video può essere soltanto un rettangolo. Non è possibile utilizzare aree di visualizzazione più avanzate, ad esempio ellittiche o irregolari.
- Non è possibile ruotare il video.
- Non è possibile memorizzare il video nella cache bitmap o usare BitmapData per accedervi.
- Non è possibile applicare filtri al video.
- Non è possibile applicare trasformazioni di colore al video.
- Non è possibile applicare un valore alfa al video.
- Le modalità di fusione applicate agli oggetti di visualizzazione che si trovano davanti al video non vengono applicate al video.
- Potete collocare il video solo su limiti di pixel pieni.
- Anche se il rendering è il migliore disponibile per l'hardware di un determinato dispositivo, non ha una "corrispondenza di pixel" al 100% su dispositivi diversi. Piccole variazioni sono dovute alle differenze di driver e piattaforma.
- Alcuni dispositivi non supportano tutti gli spazi cromatici necessari. Alcuni dispositivi, ad esempio, non supportano BT.709, lo standard H.264. In questi casi, potete utilizzare BT.601 per una rapida visualizzazione.
- Non potete usare video sullo stage con impostazioni di WMODE quale
normal
,opaque
, otransparent
. Il video sullo stage supporta soloWMODE=direct
quando non è in modalità a tutto schermo. WMODE non ha alcun effetto in Safari 4 o versione successiva, IE 9 o versione successiva o in AIR per TV. - Quando utilizzate StageVideo in un'applicazione AIR for Android, imposta la proprietà
colorDepth
su bit nel descrittore dell'applicazione. L'uso di StageVideo con una profondità colore di 16 bit non è supportato. - In Android, StageVideo è supportato solo sui dispositivi con Android 3 (Honeycomb) e versioni successive. Per abilitare l'esecuzione dell'app sulla selezione più ampia possibile di dispositivi Android, fornite sempre la logica necessaria per visualizzare il video con l'oggetto Video quando StageVideo non è disponibile.
La procedura seguente spiega come utilizzare un oggetto StageVideo per riprodurre un video:
- Intercettate l'evento StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY per rilevare il momento in cui il vettore Stage.stageVideos viene modificato. (Non supportato in AIR 2.5 per TV).
- Se l'evento StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY segnala che il video sullo stage è disponibile, usate l'oggetto Vector
Stage.stageVideos
all'interno del gestore di eventi per accedere a un oggetto StageVideo. In AIR 2.5 per TV, potete accedere aStage.stageVideos
dopo il rendering del primo fotogramma SWF. Nota Tenete presente che non è possibile creare un oggetto StageVideo. - Associate un oggetto NetStream utilizzando
StageVideo.attachNetStream()
. - Riproducete il video utilizzando
NetStream.play()
. - Intercettate l'evento
StageVideoEvent.RENDER_STATE
sull'oggetto StageVideo per determinare lo stato di riproduzione del video. Il ricevimento di questo evento indica inoltre che le proprietà relative alla larghezza e all'altezza del video sono state inizializzate o modificate. - Intercettate l'evento
VideoEvent.RENDER_STATE
dell'oggetto Video. Questo evento presenta gli stessi stati di StageVideoEvent.RENDER_STATE, quindi potete usarlo anche per determinare se è disponibile l'accelerazione tramite GPU. Il ricevimento di questo evento indica inoltre che le proprietà relative alla larghezza e all'altezza del video sono state inizializzate o modificate. (Non supportato in AIR 2.5 per TV).
Se un evento StageVideoEvent.RENDER_STATE
indica che il video non può essere riprodotto, potete tornare a utilizzare un oggetto Video anziché un oggetto StageVideo. Questo evento viene inviato dopo che il video è stato associato a un oggetto NetStream ed è in corso di riproduzione. Inoltre, a seconda della piattaforma, qualsiasi modifica dello stato di riproduzione può determinare l'invio dell'evento. Gestite l'evento StageVideoEvent.RENDER_STATE
per fare in modo che l'applicazione riproduca il video oppure non lo riproduca ma senza generare errori.
Se un video in esecuzione passa alla modalità a tutto schermo da una WMODE che non supporta il video sullo stage, è possibile che la visualizzazione del video sullo stage diventi disponibile. In modo analogo, se l'utente esce dalla modalità a tutto schermo, il video sullo stage diventa non disponibile. In questi casi, si verifica una modifica del vettore Stage.stageVideos. Per ricevere una notifica relativa a tale modifica, intercettate l'evento StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABITY. NOTA: tale notifica non è disponibile in AIR 2.5 per TV.
Altre informazioni
Nozioni fondamentali sui formati video
Compatibilità Flash Player e AIR con i file video codificati
Nozioni fondamentali sui formati di file video F4V e FLV Adobe
Argomenti avanzati per i file video
Esempio video: Video Jukebox
Utilizzo della classe StageVideo per la presentazione con accelerazione hardware
Uso della classe StageVideo per rendering con accelerazione hardware
Elementi API correlati
flash.events.StageVideoAvailabilityEvent
flash.events.VideoEvent
flash.display.Stage.stageVideos
flash.media.Video
flash.net.NetStream
Proprietà | Definito da | ||
---|---|---|---|
colorSpaces : Vector.<String> [sola lettura]
Restituisce i nomi degli spazi colore disponibili per questa superficie video. | StageVideo | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
depth : int
Il livello di profondità di un oggetto StageVideo in relazione ad altri oggetti StageVideo. | StageVideo | ||
pan : Point
L'impostazione pan (panoramica) per la visualizzazione del video, specificata come oggetto Point. | StageVideo | ||
videoHeight : int [sola lettura]
Un numero intero che specifica l'altezza del flusso video espressa in pixel. | StageVideo | ||
videoWidth : int [sola lettura]
Un numero intero che specifica la larghezza del flusso video espressa in pixel. | StageVideo | ||
viewPort : Rectangle
La posizione assoluta e la dimensione della superficie del video in pixel. | StageVideo | ||
zoom : Point
L'impostazione zoom del video, specificata come oggetto Point. | StageVideo |
Metodo | Definito da | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento. | EventDispatcher | ||
Specifica un flusso video proveniente da una videocamera da visualizzare all’interno dei limiti dell’oggetto StageVideo nell’applicazione, sfruttando la GPU per il rendering. | StageVideo | ||
Specifica un flusso video da visualizzare all'interno dei limiti dell'oggetto StageVideo nell'applicazione. | StageVideo | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento. | EventDispatcher | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object | ||
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato. | EventDispatcher |
Evento | Riepilogo | Definito da | ||
---|---|---|---|---|
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato attivo. | EventDispatcher | |||
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato inattivo. | EventDispatcher | |||
Inviato dall'oggetto StageVideo quando lo stato di rendering dell'oggetto StageVideo cambia. | StageVideo |
colorSpaces | proprietà |
colorSpaces:Vector.<String>
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Restituisce i nomi degli spazi colore disponibili per questa superficie video. Solitamente questo elenco include "BT.601" e "BT.709". In alcune configurazioni, solo "BT.601" è supportato, pertanto è possibile che il rendering di un video non venga eseguito nello spazio cromatico corretto.
Nota: sui dispositivi AIR per TV, un valore "BT.601" indica la riproduzione tramite software, mentre un valore "BT.709" indica la riproduzione tramite hardware.
Implementazione
public function get colorSpaces():Vector.<String>
depth | proprietà |
depth:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Il livello di profondità di un oggetto StageVideo in relazione ad altri oggetti StageVideo.
Gli oggetti StageVideo vengono sempre visualizzati in secondo piano rispetto ad altri oggetti sullo stage. Se una piattaforma supporta più di un oggetto StageVideo, la proprietà depth
indica il livello di profondità di un oggetto StageVideo. La proprietà depth
dell'oggetto StageVideo inferiore ha il valore più basso. Se più oggetti StageVideo hanno la stessa impostazione di profondità, l'ordine in cui appaiono nel vettore stage,stageVideos
determina la loro profondità relativa.
Nota: i dispositivi AIR per TV supportano un solo oggetto StageVideo. Di conseguenza, questa proprietà non è utilizzabile per tali dispositivi.
Implementazione
public function get depth():int
public function set depth(value:int):void
Elementi API correlati
pan | proprietà |
pan:Point
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
L'impostazione pan (panoramica) per la visualizzazione del video, specificata come oggetto Point.
Il valore predefinito di pan
è (0,0)
. In base a tale valore, il video viene centrato nel rettangolo specificato da StageVideo.viewPort
.
Il valore pan
è significativo solo quando il valore della proprietà zoom
è diverso dal valore predefinito (1.0, 1.0)
. Quando un video è visualizzato nel rettangolo StageVideo.viewPort
con il valore zoom
predefinito, la piattaforma adatta le dimensioni del video alle misure esatte del rettangolo, in modo tale che il video sia interamente visibile. Se invece viene specificato un fattore di zoom, il video non è visibile per intero. In questo caso, potete impostare il valore pan
in modo da specificare quale sottorettangolo del video deve essere visualizzato nel rettangolo StageVideo.viewPort
.
I valori validi della proprietà pan
vanno da (-1.0, -1.0)
a (1.0, 1.0)
. Specificamente:
-
Un valore
pan
di(-1.0, -1.0)
colloca il pixel superiore sinistro del video nella posizione superiore sinistra del rettangoloStageVideo.viewPort
. -
Un valore
pan
di(1.0, 1.0)
colloca il pixel inferiore destro del video nella posizione inferiore destra del rettangoloStageVideo.viewPort
. -
Un valore
pan
di(1.0, -1.0)
colloca il pixel superiore destro del video nella posizione superiore destra del rettangoloStageVideo.viewPort
. -
Un valore
pan
di(-1.0, 1.0)
colloca il pixel inferiore sinistro del video nella posizione inferiore sinistra del rettangoloStageVideo.viewPort
.
I valori compresi tra -1.0 e 1.0 eseguono la panoramica in base al valore di scala.
Se impostate la proprietà pan
su un valore non compreso nell'intervallo valido, viene generata un'eccezione RangeError
. Il runtime reimposta il valore sull'ultimo valore valido.
Tenete anche presente che per utilizzare un oggetto StageVideo, dovete assegnare un elemento dell'oggetto Vector Stage.stageVideos
a una variabile StageVideo. Quando impostate la proprietà pan
della variabile StageVideo, l'elemento Vector Stage.stageVideos
sottostante cambia a sua volta. Se in seguito assegnate quell'elemento a un'altra variabile StageVideo per riprodurre un altro video, reimpostate la proprietà pan
.
Implementazione
public function get pan():Point
public function set pan(value:Point):void
Genera
RangeError — Il valore Point non è valido.
|
Elementi API correlati
videoHeight | proprietà |
videoHeight:int
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Un numero intero che specifica l'altezza del flusso video espressa in pixel.
Potete utilizzare questa proprietà per fare in modo che, ad esempio, l'utente visualizzi il video con la stessa altezza con cui è stato acquisito, a prescindere dalle dimensioni del rettangolo StageVideo.viewPort
.
Implementazione
public function get videoHeight():int
videoWidth | proprietà |
videoWidth:int
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Un numero intero che specifica la larghezza del flusso video espressa in pixel.
Potete utilizzare questa proprietà per fare in modo che, ad esempio, l'utente visualizzi il video con la stessa larghezza con cui è stato acquisito, a prescindere dalle dimensioni del rettangolo StageVideo.viewPort
.
Implementazione
public function get videoWidth():int
viewPort | proprietà |
viewPort:Rectangle
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
La posizione assoluta e la dimensione della superficie del video in pixel.
La posizione del video è relativa all'angolo superiore sinistro dello stage.
L'intervallo valido per le proprietà x
e y
dell'oggetto viewPort
è compreso tra -8192 e 8191. Potete quindi posizionare il video completamente o parzialmente fuori dallo stage. Potete anche rendere il video più grande dello stage se impostate le proprietà width
e height
della proprietà viewPort
su valori maggiori delle dimensioni dello stage.
Implementazione
public function get viewPort():Rectangle
public function set viewPort(value:Rectangle):void
Genera
RangeError — Il valore Rectangle non è valido.
|
zoom | proprietà |
zoom:Point
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
L'impostazione zoom del video, specificata come oggetto Point.
Il punto di zoom è un fattore di scala. Il valore predefinito di zoom
è (1.0, 1.0)
. In base a tale valore, il video viene visualizzato per intero nel rettangolo StageVideo.viewPort
.
I valori validi della proprietà zoom
vanno da (1.0, 1.0)
a (8.0, 8.0)
. Le proprietà x
e y dell'oggetto Point zoom specificano rispettivamente il valore di zoom dei pixel orizzontali e verticali.
Ad esempio, un valore zoom
di (2.0, 2.0)
visualizza metà dei pixel orizzontali e metà dei pixel verticali nel rettangolo StageVideo.viewPort
. Il video riempie comunque il rettangolo StageVideo.viewPort
, ma è visibile solo per metà, creando un effetto di zoom 2x. Analogamente, un valore zoom
di (8.0, 8.0)
visualizza solo 1/8 dei pixel orizzontali e 1/8 dei pixel verticali nel rettangolo StageVideo.viewPort
, eseguendo uno zoom al livello massimo di 8x.
Quando impostate la proprietà zoom
, impostate il valore della proprietà pan
in modo tale che il rettangolo StageVideo.viewPort
mostri il sottorettangolo appropriato del video.
Considerate la situazione seguente, nella quale è utile impostare un valore differente per le proprietà x
e y
dell'oggetto Point zoom
. Innanzi tutto, tenete presente che quando un video è visualizzato nel rettangolo StageVideo.viewPort
con il valore zoom
predefinito, la piattaforma adatta le dimensioni del video alle misure esatte del rettangolo. Se il rettangolo del video non viene ridimensionato in modo uniforme rispetto al rettangolo StageVideo.viewPort
, la visualizzazione del video potrebbe subire delle distorsioni. In altre parole, le proporzioni del video non corrisponderebbero a quelle del rettangolo StageVideo.viewPort
. Questa situazione si può verificare, ad esempio, se il video ha larghezza e altezza differenti ma la proprietà StageVideo.viewPort
specifica un quadrato. Per evitare la distorsione, impostate valori differenti per le proprietà x
e y
dell'oggetto Point zoom
. Quindi, impostate la proprietà pan
in modo tale che il rettangolo StageVideo.viewPort
mostri il sottorettangolo appropriato del video.
Se impostate la proprietà zoom
su un valore non compreso nell'intervallo valido, viene generata un'eccezione RangeError
. Il runtime reimposta il valore sull'ultimo valore valido.
Tenete anche presente che per utilizzare un oggetto StageVideo, dovete assegnare un elemento dell'oggetto Vector Stage.stageVideos
a una variabile StageVideo. Quando impostate la proprietà zoom
della variabile StageVideo, l'elemento Vector Stage.stageVideos
sottostante cambia a sua volta. Se in seguito assegnate quell'elemento a un'altra variabile StageVideo per riprodurre un altro video, reimpostate la proprietà zoom
.
Implementazione
public function get zoom():Point
public function set zoom(value:Point):void
Genera
RangeError — Il valore Point non è valido.
|
Elementi API correlati
attachCamera | () | metodo |
public function attachCamera(theCamera:Camera):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11.4, AIR 3.4 |
Specifica un flusso video proveniente da una videocamera da visualizzare all’interno dei limiti dell’oggetto StageVideo nell’applicazione, sfruttando la GPU per il rendering.
Nota: StageVideo per videocamera non è supportato su Android.
Utilizzate questo metodo per collegare video dal vivo acquisito dall’utente all’oggetto StageVideo. Per interrompere la connessione all’oggetto StageVideo, passate il valore null
.
Parametri
theCamera:Camera — Un oggetto Camera che cattura dati video.
|
Elementi API correlati
attachNetStream | () | metodo |
public function attachNetStream(netStream:NetStream):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Specifica un flusso video da visualizzare all'interno dei limiti dell'oggetto StageVideo nell'applicazione. Lo streaming video è un file video riprodotto con NetStream.play()
oppure è null. Un file video può essere salvato nel file system locale o in Flash Media Server. Se il valore dell'argomento netStream
è null
, il video non viene più riprodotto nell'oggetto StageVideo.
Prima di chiamare attachNetStream()
una seconda volta, chiamate il metodo close()
dell'oggetto NetStream attualmente associato. Una chiamata di close()
rilascia tutte le risorse (compresi i decodificatori hardware) interessate dalla riproduzione del video. In seguito potete chiamare attachNetStream()
con un altro oggetto NetStream oppure con null
.
Non è necessario utilizzare questo metodo se un file video contiene solo audio; la porzione audio del file video viene riprodotta automaticamente quando chiamate NetStream.play()
. Per controllare l'audio associato a un file video, utilizzate la proprietà soundTransform
dell'oggetto NetStream che riproduce il file video.
Parametri
netStream:NetStream — Un oggetto NetStream. Per interrompere la connessione all'oggetto StageVideo, passate il valore null .
|
renderState | Evento |
flash.events.StageVideoEvent
proprietà StageVideoEvent.type =
flash.events.StageVideoEvent.RENDER_STATE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 2.5, Flash Player 10.2 |
Inviato dall'oggetto StageVideo quando lo stato di rendering dell'oggetto StageVideo cambia.
La costanteStageVideoEvent.RENDER_STATE
definisce il valore della proprietà type
di un oggetto evento renderState
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
colorSpace | Gli spazi cromatici disponibili per la visualizzazione del video. |
currentTarget | L'oggetto che elabora attivamente l'oggetto StageVideoEvent con un listener di eventi. |
status | Indica se il rendering del video (decodifica e visualizzazione) viene eseguito dall'hardware o dal software, oppure non viene eseguito. |
target | L'oggetto StageVideo che ha cambiato stato. |
Tue Jun 12 2018, 02:44 PM Z