Pacchetto | flash.net |
Classe | public class NetStream |
Ereditarietà | NetStream EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Utilizzate la classe NetStream per le seguenti operazioni:
- Chiamate
NetStream.play()
per riprodurre un file multimediale da un disco locale, un server Web o Flash Media Server. - Chiamate
NetStream.publish()
per pubblicare un flusso video, audio e di dati su Flash Media Server. - Chiamate
NetStream.send()
per inviare messaggi di dati a tutti i client che hanno effettuato la sottoscrizione. - Chiamate
NetStream.send()
per aggiungere metadati a un flusso dal vivo. - Chiamate
NetStream.appendBytes()
per passare dati ByteArray nel NetStream.
Nota: non è possibile riprodurre e pubblicare un flusso sullo stesso oggetto NetStream.
Adobe AIR e Flash Player 9.0.115.0 e versioni successive supportano file derivati dal formato contenitore MPEG-4 standard. Questi file includono F4V, MP4, M4A, MOV, MP4V, 3GP e 3G2, se contengono video H.264 o audio codificato HEAAC v2, o entrambi. H.264 fornisce un video di qualità superiore a velocità di trasferimento più basse se confrontate con lo stesso profilo di codifica in Sorenson oppure On2. AAC è un formato audio standard definito nello standard video MPEG-4. HE-AAC v2 è un estensione di AAC che usa le tecniche Spectral Band Replication (SBR) e Parametric Stereo (PS) per aumentare l'efficienza di codifica a velocità di trasferimento ridotte.
Per ulteriori informazioni sui codec e formati di dati supportati, consultate i seguenti riferimenti:
- Documentazione di Flash Media Server
- Exploring Flash Player support for high-definition H.264 video and AAC audio(Supporto di Flash Player per il video H.264 ad alta definizione e l'audio AAC)
- Documentazione sulla specifica aperta FLV/F4V
Ricezione di dati da un flusso Flash Media Server o da un file F4V o FLV a scaricamento progressivo
Flash Media Server e i file FV4 e FLV possono inviare oggetti evento contenenti dati per punti dati specifici durante lo streaming o la riproduzione. Potete gestire i dati da un flusso o da un file FLV durante la riproduzione in due modi:
-
Associate una proprietà client con un gestore di eventi per ricevere l'oggetto di dati. Utilizzate la proprietà
NetStream.client
per assegnare un oggetto per la chiamata di specifiche funzioni di gestione dei dati. L'oggetto assegnato alla proprietàNetStream.client
può intercettare i seguenti punti dati:onCuePoint()
,onImageData()
,onMetaData()
,onPlayStatus()
,onSeekPoint()
,onTextData()
eonXMPData()
. Scrivete delle procedure all'interno di tali funzioni per gestire l'oggetto di dati restituito dal flusso durante la riproduzione. Per ulteriori informazioni, fate riferimento alla proprietàNetStream.client
. - Associate una proprietà client con una sottoclasse della classe NetStream, quindi scrivete un gestore di eventi per ricevere l'oggetto di dati. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Potete tuttavia creare una sottoclasse di NetStream e definire il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere il gestore di eventi a un'istanza della sottoclasse.
Attendete di aver ricevuto un evento NetGroup.Neighbor.Connect
prima di utilizzare la replicazione degli oggetti, l'instradamento diretto o l'invio di API.
Nota: per inviare dati tramite un file audio, ad esempio un file MP3, utilizzate la classe Sound per associare il file audio a un oggetto Sound. Utilizzate quindi la proprietà Sound.id3
per leggere i metadati dal file audio.
Supporto per video con codifica H.264 in AIR for iOS
Per il video H.264, AIR 3.0 (e versioni successive) per iOS supporta un sottoinsieme dell'API NetStream completa. La tabella seguente elenca i membri NetStream per la riproduzione che non sono supportati in AIR for iOS:
Proprietà non supportate | Metodi non supportati | Eventi non supportati |
---|---|---|
bufferTime | appendBytes() | onCuePoint (funziona solo con i file FLV) |
bufferLength | appendBytesAction() | onImageData |
backBufferTime | step() | onSeekPoint |
backBufferLength | onTextData | |
bufferTimeMax | onXMPData | |
bytesLoaded | drmError | |
currentFPS | drmStatus | |
inBufferSeek | onDRMContentData | |
info | drmAuthenticate | |
liveDelay | Codice evento di stato DRM.encryptedFLV | |
maxPauseBufferTime | ||
soundTransform | ||
Tutte le proprietà che descrivono connessioni RTMFP |
Per ulteriori informazioni sull’uso di AIR per iOS, vedete il metodo NetStream.play()
.
Altri esempi
Controllo della riproduzione video
Rilevamento della fine di un flusso video
Nozioni fondamentali sui cue point
Scrittura di metodi di callback per metadati e cue point
Uso di cue point e metadati
Monitoraggio dell'attività NetStream
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
Riproduzione di video nella modalità a schermo intero
Streaming di file video
Argomenti avanzati per i file video
Esempio video: Video Jukebox
Uso della funzionalità DRM (Digital Rights Management)
Nozioni fondamentali sul flusso di contenuto protetto
Membri ed eventi della classe NetStream correlati a DRM
Uso della classe DRMAuthenticateEvent
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
audioReliable : Boolean
Per le connessioni RTMFP, specifica se l'audio viene inviato con affidabilità completa. | NetStream | ||
audioSampleAccess : Boolean
Per le connessioni RTMFP, specifica se i sottoscrittori peer-to-peer di questo NetStream sono autorizzati da acquisire il flusso audio | NetStream | ||
backBufferLength : Number [sola lettura]
Il numero di secondi durante i quali i dati precedentemente visualizzati rimangono memorizzati nella cache per operazioni di riavvolgimento e riproduzione | NetStream | ||
backBufferTime : Number
Specifica la quantità di dati precedentemente visualizzati, in secondi, che Flash Player tenta di memorizzare nella cache per operazioni di riavvolgimento e riproduzione. | NetStream | ||
bufferLength : Number [sola lettura]
Il numero di secondi di dati che si trovano attualmente nel buffer. | NetStream | ||
bufferTime : Number
Specifica per quanto tempo i messaggi devono essere inseriti nel buffer prima che inizi la visualizzazione dello streaming. | NetStream | ||
bufferTimeMax : Number
Specifica la lunghezza massima del buffer, in secondi, per il contenuto in streaming dal vivo. | NetStream | ||
bytesLoaded : uint [sola lettura]
Il numero di byte di dati che sono stati caricati nell'applicazione. | NetStream | ||
bytesTotal : uint [sola lettura]
Le dimensioni totali, espresse in byte, del file che si sta caricando nell'applicazione. | NetStream | ||
checkPolicyFile : Boolean
Specifica se l'applicazione tenta di scaricare un file dei criteri dei domini dal server del file video caricato prima di iniziare a caricare il file video stesso. | NetStream | ||
client : Object
Specifica l'oggetto su cui vengono richiamati i metodi di callback per gestire lo streaming o i dati del file F4V/FLV. | NetStream | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
currentFPS : Number [sola lettura]
Il numero di fotogrammi al secondo visualizzati. | NetStream | ||
dataReliable : Boolean
Per le connessioni RTMFP, specifica se le chiamate NetStream.send() vengono inviate con affidabilità completa. | NetStream | ||
farID : String [sola lettura]
Per le connessioni RTMFP, l'identificatore dell'estremità connessa a questa istanza NetStream. | NetStream | ||
farNonce : String [sola lettura]
Per le connessioni RTMFP e RTMPE, valore scelto sostanzialmente dall'altra estremità di questo flusso, specifico per questa connessione | NetStream | ||
inBufferSeek : Boolean
Specifica se i dati visualizzati vengono memorizzati (TRUE) o meno (FALSE) nella cache per la ricerca intelligente. | NetStream | ||
info : NetStreamInfo [sola lettura]
Restituisce un oggetto NetStreamInfo le cui proprietà contengono statistiche sulla qualità del servizio. | NetStream | ||
liveDelay : Number [sola lettura]
Il numero di secondi di dati nel buffer dello streaming in subscribing in modalità dal vivo (senza buffer). | NetStream | ||
maxPauseBufferTime : Number
Specifica per quanto tempo i messaggi devono essere inseriti nel buffer durante la modalità di pausa, in secondi. | NetStream | ||
multicastAvailabilitySendToAll : Boolean
Per le connessioni RTMFP, specifica se i messaggi di disponibilità dei frammenti multicast peer-to-peer vengono inviati a tutti i peer o soltanto a uno. | NetStream | ||
multicastAvailabilityUpdatePeriod : Number
Per le connessioni RTMFP, specifica l'intervallo in secondi tra i messaggi inviati ai peer per segnalare che il nodo locale contiene nuovi frammenti multimediali multicast peer-to-peer disponibili | NetStream | ||
multicastFetchPeriod : Number
Per le connessioni RTMFP, specifica l'intervallo in secondi tra il momento in cui il nodo locale rileva che un frammento multimediale multicast peer-to-peer è disponibile e quello in cui tenta di prelevarlo da un peer. | NetStream | ||
multicastInfo : NetStreamMulticastInfo [sola lettura]
Per le connessioni RTMFP, restituisce un oggetto NetStreamMulticastInfo le cui proprietà contengono statistiche sulla qualità del servizio | NetStream | ||
multicastPushNeighborLimit : Number
Per le connessioni RTMFP, specifica il numero massimo di peer ai quali devono essere inviati proattivamente in push i contenuti multimediali multicast. | NetStream | ||
multicastRelayMarginDuration : Number
Per le connessioni RTMFP, specifica la durata in secondi del periodo in cui i dati multicast peer-to-peer rimangono disponibili per l'invio ai peer che li richiedono oltre un determinato intervallo di tempo. | NetStream | ||
multicastWindowDuration : Number
Per le connessioni RTMFP, specifica la durata in secondi della finestra di riassemblaggio multicast peer-to-peer. | NetStream | ||
nearNonce : String [sola lettura]
Per le connessioni RTMFP e RTMPE, valore scelto sostanzialmente da questa estremità del flusso, specifico per questa connessione. | NetStream | ||
objectEncoding : uint [sola lettura]
La codifica oggetto (versione AMF) per questo oggetto NetStream. | NetStream | ||
peerStreams : Array [sola lettura]
Un oggetto che contiene tutte le istanze NetStream di sottoscrizione in attesa di questa istanza NetStream di pubblicazione. | NetStream | ||
soundTransform : flash.media:SoundTransform
Controlla l'audio in questo oggetto NetStream. | NetStream | ||
time : Number [sola lettura]
La posizione dell'indicatore di riproduzione, espressa in secondi. | NetStream | ||
useHardwareDecoder : Boolean
Specifica se utilizzare la decodifica con accelerazione hardware sullo streaming. | NetStream | ||
useJitterBuffer : Boolean
Riduce al minimo la latenza per lo streaming live senza bufferizzazione (bufferTime = 0). | NetStream | ||
videoReliable : Boolean
Per le connessioni RTMFP, specifica se il video viene inviato con affidabilità completa. | NetStream | ||
videoSampleAccess : Boolean
Per le connessioni RTMFP, specifica se i sottoscrittori peer-to-peer di questo NetStream sono autorizzati da acquisire il flusso video. | NetStream | ||
videoStreamSettings : VideoStreamSettings
Specifica le proprietà di compressione del flusso. | NetStream |
Metodo | Definito da | ||
---|---|---|---|
Crea un flusso che potete utilizzare per riprodurre file multimediali e inviare dati tramite un oggetto NetConnection. | NetStream | ||
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 | ||
Passa un ByteArray in un NetStream per la riproduzione. | NetStream | ||
Indica una discontinuità della scala temporale, scarica il FIFO e segnala al parser di byte di attendere un'intestazione di file o l'inizio di un tag FLV. | NetStream | ||
Associa un flusso a un nuovo oggetto NetConnection. | NetStream | ||
Associa uno streaming audio a un oggetto NetStream, da un oggetto Microphone passato come origine. | NetStream | ||
Inizia a catturare il video da una videocamera, oppure interrompe la cattura se l'impostazione theCamera è impostata su null. | NetStream | ||
Interrompe la riproduzione di tutti i dati dello streaming, imposta la proprietà time su 0 e rende lo streaming disponibile per un altro uso. | NetStream | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Rilascia tutte le risorse impegnate dall'oggetto NetStream. | NetStream | ||
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 | ||
Richiamato quando uno streaming di pubblicazione peer corrisponde a uno streaming di sottoscrizione peer. | NetStream | ||
Sospende la riproduzione di uno streaming video. | NetStream | ||
Riproduce un file multimediale da una directory locale o da un server Web; riproduce un file multimediale o uno streaming dal vivo da Flash Media Server. | NetStream | ||
Passa direttamente tra file con più velocità di trasmissione e consente a NetStream di riprendere la riproduzione quando una connessione si interrompe e viene riconnessa. | NetStream | ||
Estrae i metadati DRM presenti in un file multimediale archiviato localmente. | NetStream | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Invia lo streaming audio, video e dei messaggi di dati da un client a un Flash Media server, con l'opzione di registrazione dello streaming nel corso della trasmissione. | NetStream | ||
Specifica se l'audio in entrata viene riprodotto nello streaming. | NetStream | ||
Specifica se il video in entrata viene riprodotto nel flusso. | NetStream | ||
Specifica la frequenza fotogrammi del video in entrata. | NetStream | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
[statico]
Nelle applicazioni AIR, elimina tutti i dati del voucher DRM (Digital Rights Management) memorizzati nella cache locale. | NetStream | ||
riprende la riproduzione di uno streaming video in pausa. | NetStream | ||
Cerca il fotogramma chiave (anche chiamato I-frame nell'industria video) più vicino alla posizione specificata. | NetStream | ||
Invia un messaggio su uno streaming pubblicato a tutti i client che hanno effettuato il subscribing. | NetStream | ||
Imposta le credenziali di autenticazione DRM necessarie per visualizzare il contenuto crittografato sottostante. | NetStream | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Avanza o retrocede del numero di fotogrammi specificato rispetto al fotogramma attualmente visualizzato. | NetStream | ||
Sospende o riprende la riproduzione di un flusso. | NetStream | ||
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 | |||
Inviato quando viene generata un'eccezione in modo asincrono, cioè da un codice asincrono nativo. | NetStream | |||
[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 quando un oggetto NetStream tenta di riprodurre un contenuto con crittografia DRM che per essere riprodotto richiede una credenziale utente come autenticazione. | NetStream | |||
Inviato quando un oggetto NetStream che tenta di riprodurre un file con crittografia DRM incontra un errore relativo al DRM. | NetStream | |||
Inviato quando il contenuto con codifica DRM (Digital Rights Management) inizia la riproduzione (quando l'utente è stato autenticato e autorizzato a riprodurre il contenuto). | NetStream | |||
Inviato quando si verifica un errore di input o di output che impedisce l'operazione di rete. | NetStream | |||
Inviato quando si riproduce contenuto video e si elaborano alcuni tipi di messaggi. | NetStream | |||
Inviato quando un oggetto NetStream segnala il proprio stato o una condizione di errore. | NetStream | |||
Definisce un listener per rispondere quando si raggiunge un cue point incorporato durante la riproduzione di un file video. | NetStream | |||
Definisce un listener che risponde quando AIR estrae i metadati del contenuto DRM incorporati in un file multimediale. | NetStream | |||
Definisce un listener per rispondere quando Flash Player riceve dati dell'immagine come array di byte incorporato in un file multimediale in riproduzione. | NetStream | |||
Definisce un listener per rispondere quando Flash Player riceve informazioni descrittive incorporate nel video in riproduzione. | NetStream | |||
Definisce un listener per rispondere quando un oggetto NetStream ha completato la riproduzione di un flusso. | NetStream | |||
Chiamato in modo sincrono da appendBytes() quando il parser di byte incontra un punto che viene valutato come punto ricercabile (ad es. un fotogramma chiave video). | NetStream | |||
Definisce un listener per rispondere quando Flash Player riceve dati di testo incorporati in un file multimediale in riproduzione. | NetStream | |||
Definisce un listener per rispondere quando Flash Player riceve informazioni specifiche di Adobe Extensible Metadata Platform (XMP) incorporate nel video in riproduzione. | NetStream | |||
Inviato quanto l'applicazione tenta di riprodurre il contenuto con crittografia DRM richiamando il metodo NetStream.play(). | NetStream |
Costante | Definito da | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [statico]
Un oggetto statico utilizzato come parametro della funzione di costruzione per un'istanza NetStream. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [statico]
Crea una connessione publisher da peer a peer. | NetStream |
audioReliable | proprietà |
audioReliable:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica se l'audio viene inviato con affidabilità completa. Se è TRUE, tutto l'audio trasmesso tramite questo NetStream è completamente affidabile. Se FALSE, l'audio trasmesso non è completamente affidabile, ma viene ritrasmesso per un periodo limitato e quindi eliminato. Potete utilizzare il valore FALSE per ridurre la latenza, ma a scapito della qualità dell'audio.
Se tentate di impostare questa proprietà su FALSE su un protocollo di rete che non supporta l'affidabilità parziale, il tentativo viene ignorato e la proprietà impostata su TRUE.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get audioReliable():Boolean
public function set audioReliable(value:Boolean):void
Elementi API correlati
audioSampleAccess | proprietà |
audioSampleAccess:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica se i sottoscrittori peer-to-peer di questo NetStream sono autorizzati da acquisire il flusso audio Se FALSE, il sottoscrittore tenta di acquisire il flusso audio che presenta errori di autorizzazione.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get audioSampleAccess():Boolean
public function set audioSampleAccess(value:Boolean):void
Elementi API correlati
backBufferLength | proprietà |
backBufferLength:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Il numero di secondi durante i quali i dati precedentemente visualizzati rimangono memorizzati nella cache per operazioni di riavvolgimento e riproduzione
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Questa proprietà è disponibile solo durante lo streaming dei dati fa Flash Media Server 3.5.3 o versioni successive; per ulteriori informazioni su Flash Media Server, vedete la descrizione della classe.
Per specificare la quantità di dati precedentemente memorizzati nella cache, utilizzate la proprietà Netstream.backBufferTime
.
Per impedire che i dati vengano memorizzati nella cache, impostate la proprietà Netstream.inBufferSeek
su FALSE.
Implementazione
public function get backBufferLength():Number
Elementi API correlati
backBufferTime | proprietà |
backBufferTime:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Specifica la quantità di dati precedentemente visualizzati, in secondi, che Flash Player tenta di memorizzare nella cache per operazioni di riavvolgimento e riproduzione. Il valore predefinito è 30 secondi per le applicazioni desktop e 3 secondi per le applicazioni mobili.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Questa proprietà è disponibile solo durante lo streaming dei dati da Flash Media Server versione 3.5.3 o successive; per ulteriori informazioni su Flash Media Server, vedete la descrizione della classe.
L'utilizzo di questa proprietà migliora le prestazioni delle operazioni di riavvolgimento, in quanto i dati già visualizzati non vengono recuperati di nuovo dal server. La riproduzione del flusso inizia invece dal buffer. Durante la riproduzione, lo streaming dei dati dal server continua finché il buffer non è pieno.
Se la posizione di riavvolgimento è molto più indietro rispetto ai dati nella cache, il buffer viene svuotato; lo streaming dei dati viene quindi ripreso dal server nella posizione richiesta.
Per utilizzare questa proprietà, impostate la proprietà Netstream.inBufferSeek
su TRUE.
Implementazione
public function get backBufferTime():Number
public function set backBufferTime(value:Number):void
Elementi API correlati
bufferLength | proprietà |
bufferLength:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il numero di secondi di dati che si trovano attualmente nel buffer. È possibile utilizzare questa proprietà con la proprietà bufferTime
per stimare quanti secondi mancano al riempimento completo del buffer; ad esempio, per visualizzare un feedback a un utente che attende il caricamento dei dati nel buffer.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get bufferLength():Number
Elementi API correlati
bufferTime | proprietà |
bufferTime:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Specifica per quanto tempo i messaggi devono essere inseriti nel buffer prima che inizi la visualizzazione dello streaming.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Il valore predefinito è 0,1, ovvero un decimo di secondo. Per determinare il numero di secondi attualmente presenti nel buffer, utilizzate bufferLength
.
Per riprodurre una playlist server-side, impostate bufferTime
almeno su 1 secondo. Se incontrate problemi di riproduzione, incrementate la lunghezza di bufferTime
.
Contenuto registrato Per evitare distorsioni durante lo streaming di contenuto preregistrato (non dal vivo), evitate di impostare il valore di Netstream.bufferTime
su 0. Per impostazione predefinita, l'applicazione utilizza un buffer di input per il contenuto che inserisce in coda i dati multimediali e riproduce correttamente il contenuto multimediale. Per il contenuto preregistrato, utilizzate l'impostazione predefinita o aumentate il tempo di bufferizzazione.
Contenuto dal vivo Quando eseguite lo streaming di un contenuto dal vivo, impostate la proprietà bufferTime
su 0.
A partire da Flash Player 9.0.115.0, Flash Player non cancella più il buffer quando viene effettuata una chiamata a NetStream.pause()
. Prima di Flash Player 9.0.115.0, Flash Player attendeva il riempimento del buffer prima di riprendere la riproduzione, e ciò spesso provocava un ritardo.
Per una pausa singola, la proprietà NetStream.bufferLength
ha un limite impostato su 60 secondi o sul doppio del valore di NetStream.bufferTime
, a seconda di quale dei due sia il valore più alto. Ad esempio, se bufferTime
è 20 secondi, Flash Player effettua il buffering fino a quando NetStream.bufferLength
ha un valore più elevato rispetto a 20*2 (40) o 60: In questo caso, fino a quando bufferLength
è 60. Se bufferTime
è 40 secondi, Flash Player effettua il buffering fino a quando bufferLength
ha un valore più alto rispetto a 40*2 (80) o 60. In questo caso, fino a quando bufferLength
è 80 secondi.
Anche la proprietà bufferLength
ha un limite assoluto. Se una chiamata a pause()
provoca un aumento di bufferLength
oltre 600 secondi o il valore bufferTime
* 2 (a seconda di quale valore sia il più elevato), Flash Player svuota il buffer e reimposta bufferLength
su 0. Ad esempio, se bufferTime
è 120 secondi, Flash Player svuota il buffer se bufferLength
raggiunge 600 secondi; se bufferTime
è 360 secondi, Flash Player svuota il buffer se bufferLength
raggiunge 720 secondi.
Suggerimento: potete utilizzare NetStream.pause()
nel codice per effettuare il buffering dei dati ad esempio mentre l'utente guarda un filmato pubblicitario e successivamente riprendere la riproduzione quando comincia il video principale.
Per ulteriori informazioni sul nuovo comportamento della pausa, visitate http://www.adobe.com/go/learn_fms_smartpause_it.
Flash Media Server. Il comportamento del buffer varia a seconda che il tempo del buffer sia impostato su uno stream di pubblicazione o su uno stream in subscribing. Per uno stream di pubblicazione bufferTime
specifica per quanto tempo il buffer in uscita può aumentare di dimensioni prima che l'applicazione cominci a eliminare fotogrammi. Nelle connessioni ad alta velocità, il tempo del buffer non costituisce un problema; i dati vengono inviati a una velocità quasi pari a quella impiegata dall'applicazione per inviarli al buffer. Nelle connessioni lente, tuttavia, si può verificare una differenza significativa tra la velocità di invio dei dati al buffer da parte dell'applicazione e la velocità di invio al client.
Negli stream in subscribing bufferTime
specifica per quanto tempo il buffer deve ritenere i dati prima di avviare la visualizzazione dello stream.
Nel corso della riproduzione di uno stream registrato, se bufferTime
è 0, Flash lo imposta su un valore molto basso (di circa 10 millisecondi). Se gli stream live vengono riprodotti in un secondo momento (ad esempio da una lista di riproduzione) questo tempo del buffer permane. Quindi il valore bufferTime
dello stream è diverso da zero.
Implementazione
public function get bufferTime():Number
public function set bufferTime(value:Number):void
Elementi API correlati
bufferTimeMax | proprietà |
bufferTimeMax:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Specifica la lunghezza massima del buffer, in secondi, per il contenuto in streaming dal vivo. Il valore predefinito è 0. La lunghezza del buffer può crescere con il tempo a causa di problemi di rete e dei dispositivi (ad esempio una desincronizzazione del clock tra mittente e ricevente). Impostate questa proprietà per limitare la lunghezza del buffer per le applicazioni dal vivo, ad esempio conferenze e sorveglianza.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Quando bufferTimeMax > 0
e bufferLength >= bufferTimeMax
, l'audio viene riprodotto più velocemente finché bufferLength
non raggiunge bufferTime
. Se lo streaming dal vivo è solo video, questo viene riprodotto più velocemente finché bufferLength
raggiunge bufferTime
.
In base alla quantità di contenuto in riproduzione in ritardo (la differenza tra bufferLength
e bufferTime
), Flash Player controlla la velocità di recupero tra 1,5% e 6,25%. Se il flusso contiene audio, la maggiore velocità di riproduzione viene ottenuta mediante il downsampling del dominio delle frequenze che riduce al minimo la distorsione udibile.
Impostate la proprietà bufferTimeMax
per attivare il recupero dei flussi di streaming dal vivo bufferizzati nei seguenti casi:
- Streaming dal vivo di contenuti multimediali da Flash Media Server.
- Streaming dal vivo di contenuti multimediali in modlità di generazione dati (
NetStream.appendBytes()
).
Implementazione
public function get bufferTimeMax():Number
public function set bufferTimeMax(value:Number):void
Elementi API correlati
bytesLoaded | proprietà |
bytesLoaded:uint
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il numero di byte di dati che sono stati caricati nell'applicazione. È possibile utilizzare questa proprietà con la proprietà bytesTotal
per stimare quanto manca al riempimento completo del buffer; ad esempio, per visualizzare feedback per un utente che attende il caricamento dei dati nel buffer.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get bytesLoaded():uint
Elementi API correlati
bytesTotal | proprietà |
checkPolicyFile | proprietà |
checkPolicyFile:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Specifica se l'applicazione tenta di scaricare un file dei criteri dei domini dal server del file video caricato prima di iniziare a caricare il file video stesso. Utilizzate questa proprietà per il download progressivo dei video e per caricare file che si trovano all'esterno del dominio del file SWF chiamante. Questa proprietà viene ignorata quando si utilizza RTMP.
Impostate questa proprietà su true
per chiamare BitmapData.draw()
su un file video caricato da un dominio esterno a quello del file SWF chiamante. Il metodo BitmapData.draw()
fornisce l'accesso al video a livello di pixel. Se chiamate BitmapData.draw()
senza impostare la proprietà checkPolicyFile
su true
al momento del caricamento, potete ricevere un'eccezione SecurityError
, dal momento che il file dei criteri richiesto non è stato scaricato.
Non impostate questa proprietà su true a meno che non desideriate l'accesso a livello di pixel al video che state caricando. La verifica di un file dei criteri consuma l'ampiezza di banda della rete e può ritardare l'avvio del download.
Quando chiamate il metodo NetStream.play()
con checkPolicyFile
impostato su true
, Flash Player o il runtime di AIR deve scaricare correttamente un file dei criteri dei domini pertinente oppure determinare che tale file dei criteri non esiste prima di iniziare il download. Per verificare l'esistenza di un file dei criteri, Flash Player o il runtime di AIR esegue le azioni seguenti, nell'ordine indicato:
- L'applicazione esamina i file di criteri che sono già stati scaricati.
- L'applicazione tenta di scaricare gli eventuali file dei criteri in sospeso specificati nelle chiamate al metodo
Security.loadPolicyFile()
. - L'applicazione tenta di scaricare un file dei criteri dalla posizione predefinita che corrisponde all'URL che è stato passato a
NetStream.play()
, che è/crossdomain.xml
sullo stesso server dell'URL.
In tutti i casi, Flash Player o Adobe AIR richiede sia presente un file dei criteri appropriati sul server del video, che venga fornito l'accesso all'oggetto in corrispondenza dell'URL che è stato passato a play()
in base alla posizione del file dei criteri e che sia consentito al dominio del file chiamante di accedere al video, per mezzo di uno o più tag <allow-access-from>
.
Se impostate checkPolicyFile
su true
, prima di scaricare il video l'applicazione attende che venga verificato il file dei criteri. Attendete prima di eseguire qualsiasi operazione a livello di pixel sui dati video, ad esempio una chiamata a BitmapData.draw()
, fino a quando non ricevete l'evento onMetaData
o NetStatus
dall'oggetto NetStream.
Se impostate checkPolicyFile
su true
ma non viene trovato alcun file dei criteri pertinente, non ricevete un errore finché non eseguite un'operazione che richiede un file di criteri; a quel punto l'applicazione genera un'eccezione SecurityError.
Prestate particolare attenzione con checkPolicyFile
se scaricate un file da un URL che utilizza i reindirizzamenti HTTP lato server. L'applicazione tenta di recuperare i file dei criteri che corrispondono all'URL iniziale specificato in NetStream.play()
. Se il file finale proviene da un URL diverso a causa dei reindirizzamenti HTTP, il file dei criteri inizialmente scaricato potrebbe non essere valido per l'URL finale del file, cioè l'URL che viene considerato nelle decisioni relative alla sicurezza.
Per ulteriori informazioni sui file di criteri, vedete il capitolo "Controlli del sito Web (file di criteri)" nella nella Guida per gli sviluppatori di ActionScript 3.0 e l'argomento nel Centro per sviluppatori Flash Player: Security (Sicurezza).
Implementazione
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
Altre informazioni
Elementi API correlati
client | proprietà |
client:Object
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Specifica l'oggetto su cui vengono richiamati i metodi di callback per gestire lo streaming o i dati del file F4V/FLV. L'oggetto predefinito è this
, l'oggetto NetStream che si sta creando. Se impostate la proprietà client
su un altro oggetto, i metodi di callback vengono richiamati su tale oggetto. L'oggetto NetStream.client
può chiamare le seguenti funzioni e ricevere un oggetto di dati associato: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onSeekPoint()
, onTextData()
e onXMPData()
.
Per associare le proprietà client
con un gestore di eventi:
- Create un oggetto e assegnatelo alla proprietà
client
dell'oggetto NetStream:var customClient:Object = new Object(); my_netstream.client = customClient;
- Assegnate una funzione del gestore per l'evento di dati desiderato come proprietà dell'oggetto client:
customClient.onImageData = onImageDataHandler;
- Scrivete la funzione del gestore per ricevere l'oggetto evento Data, ad esempio:
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
Quando i dati vengono passati attraverso il flusso o durante la riproduzione, l'oggetto evento Data (in questo caso l'oggetto imageData
) viene compilato con i dati. Fate riferimento alla descrizione di onImageData
, che include un esempio completo di un oggetto assegnato alla proprietà client
.
Per associare le proprietà client
con una sottoclasse:
- Create una sottoclasse con una funzione del gestore per ricevere l'oggetto evento Data:
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
- Assegnate un'istanza della sottoclasse alla proprietà
client
dell'oggetto NetStream:my_netstream.client = new CustomClient();
Quando i dati vengono passati attraverso il flusso o durante la riproduzione, l'oggetto evento Data (in questo caso l'oggetto info
) viene compilato con i dati. Fare riferimento all'esempio di classe alla fine della classe NetStream, che mostra l'assegnazione di un'istanza di sottoclasse alla proprietà client
.
Implementazione
public function get client():Object
public function set client(value:Object):void
Genera
TypeError — La proprietà client deve essere impostata su un oggetto diverso da null.
|
Elementi API correlati
currentFPS | proprietà |
currentFPS:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il numero di fotogrammi al secondo visualizzati. Se esportate file video da riprodurre su una certa quantità di sistemi, potete verificare questo valore durante la fase di prova per determinare la quantità di compressione da applicare durante l'esportazione del file.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get currentFPS():Number
dataReliable | proprietà |
dataReliable:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica se le chiamate NetStream.send()
vengono inviate con affidabilità completa. Se è TRUE, le chiamate NetStream.send()
trasmesse tramite questo NetStream sono completamente affidabili. Se FALSE, le chiamate NetStream.send()
non vengono trasmesse con affidabilità completa, ma vengono ritrasmesse per un periodo limitato e quindi eliminate. Potete impostare questo valore su FALSE per ridurre la latenza, ma a scapito della qualità dei dati.
Se tentate di impostare questa proprietà su FALSE su un protocollo di rete che non supporta l'affidabilità parziale, il tentativo viene ignorato e la proprietà impostata su TRUE.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get dataReliable():Boolean
public function set dataReliable(value:Boolean):void
Elementi API correlati
farID | proprietà |
farID:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Per le connessioni RTMFP, l'identificatore dell'estremità connessa a questa istanza NetStream.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get farID():String
farNonce | proprietà |
farNonce:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Per le connessioni RTMFP e RTMPE, valore scelto sostanzialmente dall'altra estremità di questo flusso, specifico per questa connessione Questo valore viene visualizzato all'altra estremità del flusso come valore nearNonce
.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get farNonce():String
inBufferSeek | proprietà |
inBufferSeek:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Specifica se i dati visualizzati vengono memorizzati (TRUE
) o meno (FALSE
) nella cache per la ricerca intelligente. Il valore predefinito è FALSE.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Il supporto della ricerca intelligente richiede l'interazione tra Flash Media Server 3.5.3 e Flash Player 10.1. Per la ricerca intelligente, vengono utilizzati i buffer indietro e avanti, senza richiedere dati al server. Per la ricerca standard, i dati nel buffer vengono cancellati e viene chiesto al server di inviare nuovi dati in base al tempo di ricerca.
Chiamate NetStream.step()
per avanzare o retrocedere di un numero di fotogrammi specificato. Chiamare NetStream.seek()
per cercare avanti o indietro di un numero di secondi specificato.
La ricerca intelligente riduce il carico del server e migliora le prestazioni della ricerca. Impostate inBufferSeek=true
e chiamate step()
e seek()
per creare:
- Funzionalità DVR sul lato client. Potete cercare nel buffer sul lato client, anziché ricorrere al server per la visualizzazione di nuovo video.
- Modalità avanzate. Potete creare lettori che scorrono fotogrammi, avvolgono e riavvolgono velocemente e avanzano al rallentatore.
Quando inBufferSeek=true
e una chiamata a NetStream.seek()
ha esito positivo, la proprietà NetStatusEvent info.description
contiene la stringa "client-inBufferSeek"
.
Quando una chiamata a NetStream.step()
ha esito positivo, la proprietà NetStatusEvent info.code
contiene la stringa "NetStream.Step.Notify"
.
Implementazione
public function get inBufferSeek():Boolean
public function set inBufferSeek(value:Boolean):void
Elementi API correlati
info | proprietà |
info:NetStreamInfo
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Restituisce un oggetto NetStreamInfo le cui proprietà contengono statistiche sulla qualità del servizio. L'oggetto è un'istantanea dello stato corrente.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get info():NetStreamInfo
Elementi API correlati
liveDelay | proprietà |
liveDelay:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il numero di secondi di dati nel buffer dello streaming in subscribing in modalità dal vivo (senza buffer). Questa proprietà specifica il ritardo nella trasmissione di rete corrente (lag time).
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Questa proprietà è destinata principalmente all'utilizzo con un server, quale Flash Media Server; per ulteriori informazioni, vedete la descrizione della classe.
È possibile ottenere il valore di questa proprietà per misurare in modo approssimativo la qualità di trasmissione dello streaming e comunicarla all'utente.
Implementazione
public function get liveDelay():Number
maxPauseBufferTime | proprietà |
maxPauseBufferTime:Number
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Specifica per quanto tempo i messaggi devono essere inseriti nel buffer durante la modalità di pausa, in secondi. Questa proprietà può essere utilizzata per limitare la quantità di buffering durante la modalità di pausa. Non appena il valore di NetStream.bufferLength
raggiunge questo limite, interrompe il buffering.
Se il valore non è impostato, l'impostazione predefinita è 60 secondi o due volte il valore di NetStream.bufferTime
in ogni pausa, a seconda di quale valore sia il più elevato.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get maxPauseBufferTime():Number
public function set maxPauseBufferTime(value:Number):void
Elementi API correlati
multicastAvailabilitySendToAll | proprietà |
multicastAvailabilitySendToAll:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica se i messaggi di disponibilità dei frammenti multicast peer-to-peer vengono inviati a tutti i peer o soltanto a uno. Un valore TRUE specifica che i messaggi vengono inviati a tutti i peer, una volta per ogni intervallo specificato. Un valore FALSE specifica che i messaggi vengono inviati a un solo peer per ogni intervallo specificato. L'intervallo è determinato dalla proprietà multicastAvailabilityUpdatePeriod
.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastAvailabilitySendToAll():Boolean
public function set multicastAvailabilitySendToAll(value:Boolean):void
Elementi API correlati
multicastAvailabilityUpdatePeriod | proprietà |
multicastAvailabilityUpdatePeriod:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica l'intervallo in secondi tra i messaggi inviati ai peer per segnalare che il nodo locale contiene nuovi frammenti multimediali multicast peer-to-peer disponibili Valori maggiori possono aumentare l'efficienza del batching e ridurre il sovraccarico di controllo, ma possono ridurre la qualità all'estremità ricevente riducendo il tempo disponibile per recuperare i frammenti prima della scadenza dell'intervallo. Valori inferiori possono ridurre la latenza e migliorare la qualità, aumentando tuttavia il sovraccarico dovuto al controllo.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastAvailabilityUpdatePeriod():Number
public function set multicastAvailabilityUpdatePeriod(value:Number):void
Elementi API correlati
multicastFetchPeriod | proprietà |
multicastFetchPeriod:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica l'intervallo in secondi tra il momento in cui il nodo locale rileva che un frammento multimediale multicast peer-to-peer è disponibile e quello in cui tenta di prelevarlo da un peer. Questo valore offre l'opportunità di inviare proattivamente in push il frammento al nodo locale, prima che venga effettuato il tentativo di prelievo da un peer. Consente inoltre a più peer di segnalare la disponibilità del frammento, in modo che il carico dovuto al prelievo venga distribuito tra più peer.
Valori maggiori possono migliorare il bilanciamento del carico e l'omogeneità nella rete peer-to-peer, riducendo tuttavia il valore multicastWindowDuration
disponibile e aumentando la latenza. Valori inferiori possono ridurre la latenza quando è richiesto il prelievo, ma possono aumentare la ricezione di dati duplicati e ridurre il bilanciamento del carico sulla rete peer-to-peer.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastFetchPeriod():Number
public function set multicastFetchPeriod(value:Number):void
Elementi API correlati
multicastInfo | proprietà |
multicastInfo:NetStreamMulticastInfo
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, restituisce un oggetto NetStreamMulticastInfo le cui proprietà contengono statistiche sulla qualità del servizio L'oggetto è un'istantanea dello stato corrente.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastInfo():NetStreamMulticastInfo
Elementi API correlati
multicastPushNeighborLimit | proprietà |
multicastPushNeighborLimit:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica il numero massimo di peer ai quali devono essere inviati proattivamente in push i contenuti multimediali multicast.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastPushNeighborLimit():Number
public function set multicastPushNeighborLimit(value:Number):void
multicastRelayMarginDuration | proprietà |
multicastRelayMarginDuration:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica la durata in secondi del periodo in cui i dati multicast peer-to-peer rimangono disponibili per l'invio ai peer che li richiedono oltre un determinato intervallo di tempo. La durata è specificata dalla proprietà multicastWindowDuration
.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastRelayMarginDuration():Number
public function set multicastRelayMarginDuration(value:Number):void
Elementi API correlati
multicastWindowDuration | proprietà |
multicastWindowDuration:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica la durata in secondi della finestra di riassemblaggio multicast peer-to-peer. Valori inferiori riducono la latenza, ma possono ridurre la qualità non consentendo tempo sufficiente per ottenere tutti i frammenti. Al contrario, valori maggiori possono aumentare la qualità, consentendo più tempo per ottenere tutti i frammenti, con un corrispondente aumento della latenza.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get multicastWindowDuration():Number
public function set multicastWindowDuration(value:Number):void
Elementi API correlati
nearNonce | proprietà |
nearNonce:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Per le connessioni RTMFP e RTMPE, valore scelto sostanzialmente da questa estremità del flusso, specifico per questa connessione. Questo valore viene visualizzato all'altra estremità del flusso come valore farNonce
.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get nearNonce():String
objectEncoding | proprietà |
objectEncoding:uint
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La codifica oggetto (versione AMF) per questo oggetto NetStream. L'oggetto NetStream eredita il proprio valore objectEncoding
dall'oggetto NetConnection associato. È importante comprendere questa proprietà se desiderate che un file SWF di ActionScript 3.0 comunichi con i server rilasciati prima di Flash Player 9. Per ulteriori informazioni, vedete la descrizione della proprietà objectEncoding
nella classe NetConnection.
Il valore di questa proprietà dipende dal fatto che lo streaming sia locale o remoto. Gli streaming locali, in cui null
è stato passato al metodo NetConnection.connect()
, restituiscono il valore di NetConnection.defaultObjectEncoding
. Gli streaming remoti, in cui ci si connette a un server, restituiscono la codifica oggetto della connessione al server.
Se tentate di leggere questa proprietà quando non si è connessi o se tentate di modificarla, l'applicazione genera un'eccezione.
Implementazione
public function get objectEncoding():uint
Elementi API correlati
peerStreams | proprietà |
soundTransform | proprietà |
soundTransform:flash.media:SoundTransform
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Controlla l'audio in questo oggetto NetStream. Per ulteriori informazioni, vedete la classe SoundTransform.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Elementi API correlati
time | proprietà |
time:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La posizione dell'indicatore di riproduzione, espressa in secondi.
Flash Media Server Per uno stream in subscribing, il numero di secondi durante il quale lo stream è stato riprodotto. Per uno stream pubblicato, il numero di secondi durante il quale lo stream è stato in pubblicazione. La precisione di tale valore è al millesimo per cui occorre moltiplicare per 1000 per ottenere il numero di millisecondi durante il quale lo stream è stato riprodotto.
Negli stream in subscribing se il server interrompe l'invio di dati ma lo streaming rimane aperto, viene interrotto il valore della proprietà time
. Quando l'invio di dati da parte del server riprende, l'incremento del valore continua dal punto in cui si era interrotto (quando il server ha smesso di inviare dati).
Il valore di time
continua ad aumentare anche quando lo stream passa da un elemento della lista di riproduzione a un altro. Questa proprietà viene impostata su 0 quando viene richiamato NetStream.play()
e reset
è impostato a 1
o true
, oppure quando viene richiamato NetStream.close()
.
Implementazione
public function get time():Number
Elementi API correlati
useHardwareDecoder | proprietà |
useHardwareDecoder:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3 |
Specifica se utilizzare la decodifica con accelerazione hardware sullo streaming.
Nota: non è possibile impostare questa proprietà durante la riproduzione video. Dovete impostarla prima di chiamare NetStream.play()
.
Il valore predefinito è true.
Implementazione
public function get useHardwareDecoder():Boolean
public function set useHardwareDecoder(value:Boolean):void
Elementi API correlati
useJitterBuffer | proprietà |
useJitterBuffer:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11.3, AIR 3.3 |
Riduce al minimo la latenza per lo streaming live senza bufferizzazione (bufferTime = 0). Invece che con il meccanismo di raccolta push meno dispendioso, i messaggi audio vengono inseriti in un buffer jitter adattivo. Quando l’altoparlante richiede l’audio, i messaggi vengono recuperati dal buffer jitter, decodificati e riprodotti. Speex e G.711 usano sempre questo approccio di tipo pull, indipendentemente dalle impostazioni (useJitterBuffer restituisce true per Speex/G.711). Quando sono abilitati per la modalità senza buffer, tutti i codec usano il buffer jitter, ad esempio Speex, G.711, Nellymoser, MP3 e AAC. Questa proprietà non ha effetto nella modalità con bufferizzazione (bufferTime > 0), e quindi in questo caso useJitterBuffer restituisce false.
Implementazione
public function get useJitterBuffer():Boolean
public function set useJitterBuffer(value:Boolean):void
videoReliable | proprietà |
videoReliable:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica se il video viene inviato con affidabilità completa. Se è TRUE, tutto il flusso video trasmesso tramite questo NetStream è completamente affidabile. Se FALSE, il flusso video trasmesso non è completamente affidabile, ma viene ritrasmesso per un periodo limitato e quindi eliminato. Potete utilizzare il valore FALSE per ridurre la latenza, ma a scapito della qualità del video.
Se tentate di impostare questa proprietà su FALSE su un protocollo di rete che non supporta l'affidabilità parziale, il tentativo viene ignorato e la proprietà impostata su TRUE.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get videoReliable():Boolean
public function set videoReliable(value:Boolean):void
Elementi API correlati
videoSampleAccess | proprietà |
videoSampleAccess:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Per le connessioni RTMFP, specifica se i sottoscrittori peer-to-peer di questo NetStream sono autorizzati da acquisire il flusso video. Se FALSE, il sottoscrittore tenta di acquisire il flusso video che presenta errori di autorizzazione.
Nota: questa proprietà non è supportata per il video H.264 in AIR 3.0 per iOS.
Implementazione
public function get videoSampleAccess():Boolean
public function set videoSampleAccess(value:Boolean):void
Elementi API correlati
videoStreamSettings | proprietà |
videoStreamSettings:VideoStreamSettings
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11/ConnectAddin, AIR 3 |
Specifica le proprietà di compressione del flusso. Per ulteriori informazioni, vedete VideoStreamSettings
. Quando al sistema non è collegata una videocamera, viene restituito null.
Implementazione
public function get videoStreamSettings():VideoStreamSettings
public function set videoStreamSettings(value:VideoStreamSettings):void
Elementi API correlati
NetStream | () | Funzione di costruzione |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea un flusso che potete utilizzare per riprodurre file multimediali e inviare dati tramite un oggetto NetConnection.
È considerato non valido non gestire l’evento netStatus
di un oggetto NetStream. Per evitare errori, registrate un listener per netStatus
dopo aver creato l’oggetto NetStream e prima di chiamarne il metodo play()
.
connection:NetConnection — Un oggetto NetConnection.
| |
peerID:String (default = "connectToFMS ") — Il parametro facoltativo è disponibile in Flash Player 10 e versioni successive, e può essere utilizzato con le connessioni RTMFP. (Se il valore della proprietà NetConnection.protocol non e "rtmfp" , questo parametro viene ignorato). Utilizzate uno dei seguenti valori:
Nella maggior parte dei casi, un oggetto Se includete questo parametro nell'istruzione della funzione di costruzione, ma passate un valore |
Genera
ArgumentError — L'istanza NetConnection non è connessa.
|
Elementi API correlati
DIRECT_CONNECTIONS
farID
flash.media.Video.attachCamera()
flash.net.GroupSpecifier
flash.net.GroupSpecifier.groupspecWithAuthorizations()
flash.net.GroupSpecifier.groupspecWithoutAuthorizations()
flash.net.GroupSpecifier.multicastEnabled
flash.net.NetConnection
flash.net.NetConnection.nearID
flash.net.NetConnection.protocol
flash.net.NetGroup
flash.events.NetStatusEvent.info.code="NetStream.Connect.Rejected"
flash.events.NetStatusEvent.info.code="NetStream.Connect.Success"
Esempio ( Come utilizzare questo esempio )
videoURL
:
var my_video:Video = new Video(); addChild(my_video); var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_video.attachNetStream(my_ns); my_ns.play(videoURL);
videoURL
) su un'istanza di Flash Media Server remota specificata nel comando connect()
:
var my_video:Video = new Video(); addChild(my_video); var my_nc:NetConnection = new NetConnection(); my_nc.connect("rtmp://www.yourfmsserver.com/someappname"); var my_ns:NetStream = new NetStream(my_nc, NetStream.CONNECT_TO_FMS); my_video.attachNetStream(my_ns); my_ns.play(videoURL);
appendBytes | () | metodo |
public function appendBytes(bytes:ByteArray):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Passa un ByteArray in un NetStream per la riproduzione. Chiamate questo metodo su un NetStream nella "modalità di generazione dati". Per mettere uno oggetto NetStream in modalità di generazione dati, chiamate NetStream.play(null)
su un oggetto NetStream creato su un oggetto NetConnection connesso a null
. Se si chiama appendBytes()
su un oggetto NetStream che non è in modalità di generazione dati, si verifica un errore e viene generata un'eccezione.
Nota: questo metodo non è supportato per il video H.264 in AIR 3.0 per iOS.
Il parser di byte si aspetta di elaborare un file FLV con un'intestazione. Dopo che l'intestazione è stata analizzata, appendBytes()
si aspetta che tutte le chiamate future siano continuazioni dello stesso file reale o virtuale. Un'altra intestazione non è attesa a meno che non venga chiamato appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
.
Un oggetto NetStream ha due buffer: il FIFO da appendBytes()
al NetStream e il buffer di riproduzione. Il FIFO è il buffer di riassemblaggio tag FLV parziale e contiene non più di un tag FLV incompleto. Le chiamate a NetStream.seek()
scaricano entrambi i buffer. Dopo una chiamata a seek()
, chiamate appendBytesAction()
per ripristinare la scala temporale in modo che inizi dall'indicatore temporale del successivo messaggio aggiunto.
Ogni chiamata a appendBytes()
aggiunge altri byte nel FIFO finché un tag FLV non è completo. Quando un tag FLV è completo, si sposta sul buffer di riproduzione. Una chiamata a appendBytes()
può scrivere più tag FLV. I primi byte completano un tag FLV esistente (che si sposta sul buffer di riproduzione). I tag FLV completi si spostano sul buffer di riproduzione. I byte rimanenti che non formano un tag FLV completo vanno nel FIFO. I byte nel FIFO vengono completati da una chiamata a appendBytes()
oppure scaricati da una chiamata a appendBytesAction()
con l'argomento RESET_SEEK
o RESET_BEGIN
.
Nota: il parser di byte potrebbe non essere in grado di decodificare completamente una chiamata a appendBytes()
finché non viene effettuata una nuova chiamata a appendBytes()
.
Parametri
bytes:ByteArray |
Elementi API correlati
appendBytesAction | () | metodo |
public function appendBytesAction(netStreamAppendBytesAction:String):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Indica una discontinuità della scala temporale, scarica il FIFO e segnala al parser di byte di attendere un'intestazione di file o l'inizio di un tag FLV.
Nota: questo metodo non è supportato per il video H.264 in AIR 3.0 per iOS.
Le chiamate a NetStream.seek()
scaricano i buffer NetStream. Il parser di byte rimane nella modalità di scarico finché non chiamate appendBytesAction()
e passate l'argomento RESET_BEGIN
o RESET_SEEK
. Catturate l'evento "NetStream.Seek.Notify"
per chiamare appendBytesAction()
dopo una ricerca. Una nuova intestazione di file può supportare gli elenchi di riproduzione (playlist) e la ricerca eseguita senza una chiamata a NetStream.seek()
.
Potete chiamare questo metodo anche per azzerare il contatore di byte per il callback onSeekPoint()
.
Parametri
netStreamAppendBytesAction:String |
Elementi API correlati
attach | () | metodo |
public function attach(connection:NetConnection):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Associa un flusso a un nuovo oggetto NetConnection. Chiamate questo metodo per associare un oggetto NetStream a un oggetto new NetConnection dopo che la connessione si è interrotta ed è stata riconnessa. Flash Player e AIR ripristinano lo streaming dal punto di riproduzione in cui la connessione si è interrotta. Potete utilizzare questo metodo anche per implementare il bilanciamento del carico.
Questo metodo richiede Flash Media Server versione 3.5.3 o successiva.
Per utilizzare questo metodo per implementare la riconnessione del flusso , consultate la documentazione di Flash Media Server 3.5.3.
Per utilizzare questo metodo per implementare il bilanciamento del carico, procedete come segue:
- Associate un flusso connesso a un oggetto NetConnection su un altro server.
- Dopo avere associato il flusso alla nuova connessione, chiamate
NetConnection.close()
sulla connessione precedente per evitare perdite di dati. - Chiamate
NetStream.play2()
e impostate il valoreNetStreamPlayOptions.transition
su RESUME. Impostate il resto delle proprietà NetStreamPlayOptions sugli stessi valori utilizzati quando avete chiamato originariamenteNetStream.play()
oNetStream.play2()
per avviare il flusso.
Parametri
connection:NetConnection |
Elementi API correlati
attachAudio | () | metodo |
public function attachAudio(microphone:Microphone):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Associa uno streaming audio a un oggetto NetStream, da un oggetto Microphone passato come origine. Questo metodo è disponibile solo per chi pubblica lo streaming specificato.
Utilizzate questo metodo con Flash Media Server per inviare un audio dal vivo al server. Chiamate questo metodo prima o dopo la chiamata al metodo publish()
.
Impostate la proprietà Microphone.rate
in modo che corrisponda alla frequenza del dispositivo di cattura audio. Chiamate setSilenceLevel()
per impostare la soglia del livello di silenzio. Per controllare le proprietà audio (volume e panoramica) dello streaming audio, utilizzate la proprietà Microphone.soundTransform
.
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://server.domain.com/app"); var ns:NetStream = new NetStream(nc); var live_mic:Microphone = Microphone.get(); live_mic.rate = 8; live_mic.setSilenceLevel(20,200); var soundTrans:SoundTransform = new SoundTransform(); soundTrans.volume = 6; live_mic.soundTransform = soundTrans; ns.attachAudio(live_mic); ns.publish("mic_stream","live")
Per ascoltare l'audio, chiamate il metodo NetStream.play()
e chiamate DisplayObjectContainer.addChild()
per instradare l'audio a un oggetto nell'elenco di visualizzazione.
Parametri
microphone:Microphone — L'origine dello streaming audio da trasmettere.
|
Elementi API correlati
attachCamera | () | metodo |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Inizia a catturare il video da una videocamera, oppure interrompe la cattura se l'impostazione theCamera
è impostata su null
. Questo metodo è disponibile solo per chi pubblica lo streaming specificato.
Questo evento è destinato principalmente all'utilizzo con Flash Media server; per ulteriori informazioni, vedete la descrizione della classe.
Dopo aver associato l'origine video, dovete chiamare NetStream.publish()
per iniziare la trasmissione. Gli utenti che hanno effettuato il subscribing e desiderano visualizzare il video devono chiamare i metodi NetStream.play()
e Video.attachCamera()
per visualizzare il video sullo stage.
È possibile utilizzare snapshotMilliseconds
per inviare una sola istantanea (fornendo il valore 0) o una serie di istantanee (di fatto, una ripresa "time-lapse") fornendo un numero positivo che aggiunge al feed video un trailer del numero di millisecondi specificato. Il trailer estende il tempo di visualizzazione del messaggio video. Se chiamate ripetutamente attachCamera()
con un valore positivo per snapshotMilliseconds
, la sequenza di istantanee e trailer alternati crea una ripresa "time-lapse". Ad esempio, è possibile catturare un fotogramma al giorno e aggiungerlo a un file video. Quando un utente che ha effettuato il subscribing riproduce il file, ogni fotogramma rimane sullo schermo per il numero di millisecondi specificato, quindi viene visualizzato il fotogramma successivo.
Lo scopo del parametro snapshotMilliseconds
è diverso da quello del parametro fps
che è possibile impostare con Camera.setMode()
. Quando specificate snapshotMilliseconds
, controllate quanto tempo trascorre tra i fotogrammi registrati. Quando specificate fps
utilizzando Camera.setMode()
, controllate quanto tempo trascorre durante la registrazione e la riproduzione.
Ad esempio, supponete di voler scattare un'istantanea ogni 5 minuti per un totale di 100 istantanee. Potete effettuare questa operazione in due modi:
- Potete emettere un comando
NetStream.attachCamera(myCamera, 500)
100 volte, uno ogni 5 minuti. La registrazione richiede 500 minuti, ma il file risultante viene riprodotto in 50 secondi (100 fotogrammi con un intervallo di 500 millisecondi tra un fotogramma e l'altro). - Potete emettere un comando
Camera.setMode()
con un valorefps
di 1/300 (uno per 300 secondi, o uno ogni 5 minuti), quindi emettere un comandoNetStream.attachCamera(source)
, che lascia la videocamera riprendere in modo continuo per 500 minuti. Il file risultante viene riprodotto in 500 minuti, lo stesso tempo richiesto dalla registrazione, durante i quali ogni fotogramma viene visualizzato per 5 minuti.
Entrambi i metodi catturano gli stessi 500 fotogrammi e hanno lo stesso livello di utilità; la scelta del metodo dipende principalmente dai requisiti di riproduzione. Ad esempio, nel secondo caso è possibile registrare l'audio per tutto il tempo. Inoltre, le dimensioni dei due file risultano circa uguali.
Parametri
theCamera:Camera — L'origine della trasmissione video. I valori validi sono un oggetto Camera (che inizia la cattura del video) e null . Se si passa null , l'applicazione interrompe la cattura del video e tutti gli eventuali parametri aggiuntivi inviati vengono ignorati.
| |
snapshotMilliseconds:int (default = -1 ) — Specifica se lo streaming video è continuo, un fotogramma singolo o una serie di fotogrammi singoli utilizzati per creare riprese "time-lapse".
|
close | () | metodo |
public function close():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrompe la riproduzione di tutti i dati dello streaming, imposta la proprietà time
su 0 e rende lo streaming disponibile per un altro uso. Questo metodo elimina anche la copia locale di un file video scaricato mediante HTTP. Benché l'applicazione elimini la copia locale del file, è possibile che una copia del video permanga nella directory cache. Se è necessario impedire completamente la memorizzazione nella cache o locale del file video, utilizzate Flash Media Server.
Quando utilizzate Flash Media Server, questo metodo viene chiamato automaticamente quando chiamate NetStream.play()
da un flusso di pubblicazione o NetStream.publish()
da un flusso in subscribing. Notate quanto segue:
-
Se chiamate
close()
da uno stream in pubblicazione, la pubblicazione stessa viene interrotta e chi la sta effettuando può utilizzare quello stesso stream ad altri scopi. Chi stava ricevendo quello stream smette di ricevere i dati in pubblicazione perché lo streaming è stato interrotto. -
Se chiamate
close()
da uno stream in ricezione, la ricezione viene interrotta e lo stream può essere utilizzato ad altri scopi. Gli altri utenti in ricezione non sono influenzati da questa operazione. -
Potete interrompere l'esecuzione di uno stream in ricezione senza chiuderlo o modificare il tipo di stream utilizzando
flash.net.NetStream.play(false)
.
Elementi API correlati
dispose | () | metodo |
public function dispose():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0 |
Rilascia tutte le risorse impegnate dall'oggetto NetStream.
Il metodo dispose()
è simile al metodo close
. La differenza principale tra i due metodi consiste nel fatto che dispose()
rilascia la memoria utilizzata per visualizzare il fotogramma video corrente. Se quel fotogramma è visualizzato sullo schermo, il display rimane vuoto. Il metodo close()
invece non oscura il display perché non rilascia questa memoria.
onPeerConnect | () | metodo |
public function onPeerConnect(subscriber:NetStream):Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Richiamato quando uno streaming di pubblicazione peer corrisponde a uno streaming di sottoscrizione peer. Prima della connessione del subscriber al publisher, chiamate questo metodo per consentire al codice ActionScript un esatto controllo dell'accesso per la pubblicazione da peer a peer. Il codice seguente mostra un esempio di come potete creare una funzione di callback per questo metodo:
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Se questo metodo non viene implemento da un publisher peer, a tutti i peer è consentito riprodurre qualsiasi contenuto pubblicato.
Parametri
subscriber:NetStream |
Boolean |
pause | () | metodo |
public function pause():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sospende la riproduzione di uno streaming video. La chiamata a questo metodo non ha alcun effetto se il video è già in pausa. Per riprendere la riproduzione del video dopo una pausa richiamare resume()
. Per passare da pausa a riproduzione e viceversa (effettuando prima la pausa e poi la riproduzione), chiamate togglePause()
.
A partire da Flash Player 9.0.115.0, Flash Player non cancella più il buffer quando viene effettuata una chiamata a NetStream.pause()
. Questo comportamento viene chiamato "pausa intelligente" (smart pause). Prima di Flash Player 9.0.115.0, Flash Player attendeva il riempimento del buffer prima di riprendere la riproduzione, e ciò spesso provocava un ritardo.
Nota: per garantire la compatibilità retroattiva, l'evento "NetStream.Buffer.Flush"
(vedete la proprietà NetStatusEvent.info
) viene comunque generato, anche se il server non scarica il buffer.
Per una pausa singola, la proprietà NetStream.bufferLength
ha un limite impostato su 60 secondi o sul doppio del valore di NetStream.bufferTime
, a seconda di quale dei due sia il valore più alto. Ad esempio, se bufferTime
è 20 secondi, Flash Player effettua il buffering fino a quando NetStream.bufferLength
ha un valore più elevato rispetto a 20*2 (40) o 60, quindi in questo caso fino a quando bufferLength
è 60. Se bufferTime
è 40 secondi, Flash Player effettua il buffering fino a quando bufferLength
ha un valore più alto rispetto a 40*2 (80) o 60, quindi in questo caso fino a quando bufferLength
è 80 secondi.
Anche la proprietà bufferLength
ha un limite assoluto. Se una chiamata a pause()
provoca un aumento di bufferLength
oltre 600 secondi o il valore bufferTime
* 2 (a seconda di quale valore sia il più elevato), Flash Player svuota il buffer e reimposta bufferLength
su 0. Ad esempio, se bufferTime
è 120 secondi, Flash Player svuota il buffer se bufferLength
raggiunge 600 secondi; se bufferTime
è 360 secondi, Flash Player svuota il buffer se bufferLength
raggiunge 720 secondi.
Suggerimento: potete utilizzare NetStream.pause()
nel codice per effettuare il buffering dei dati ad esempio mentre l'utente guarda un filmato pubblicitario e successivamente riprendere la riproduzione quando comincia il video principale.
Elementi API correlati
play | () | metodo |
public function play(... arguments):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Riproduce un file multimediale da una directory locale o da un server Web; riproduce un file multimediale o uno streaming dal vivo da Flash Media Server. Invia un oggetto NetStatusEvent
per segnalare i messaggi di stato e di errore.
Per ulteriori informazioni sui codec e formati di dati supportati, consultate i seguenti riferimenti:
- Documentazione di Flash Media Server
- Exploring Flash Player support for high-definition H.264 video and AAC audio(Supporto di Flash Player per il video H.264 ad alta definizione e l'audio AAC)
- Documentazione sulla specifica aperta FLV/F4V
Flusso di lavoro per la riproduzione di un file o di un flusso dal vivo
- Create un oggetto Video che visualizzerà il video e chiamate
addChild()
per aggiungerlo allo stage. Create un oggetto NetConnection e chiamate
NetConnection.connect()
.Per riprodurre un file da una directory locale o da un server Web, passate null.
Per riprodurre un file registrato o un flusso dal vivo da Flash Media Server, passate l'URI di un'applicazione Flash Media Server.
- Chiamate il metodo
addEventListener()
dell’oggetto NetConnection per intercettare l’eventonetStatus
(NetStatusEvent.NET_STATUS
). - Dopo
"NetConnection.Connect.Success"
, create un oggetto NetStream e passate l’oggetto NetConnection alla funzione di costruzione. - Chiamate l metodo
attachNetStream()
dell’oggetto Video e passate l’oggetto NetStream. Chiamate il Metodo
play()
dell’oggetto NetStream.Per riprodurre un flusso dal vivo, passate lo stesso nome che avete passato al metodo
NetStream.publish()
.Per riprodurre un file registrato, passate il nome del file.
Nota: è buona norma aggiungere sempre l’oggetto Video allo stage, associare ad esso un oggetto NetStream e infine chiamare il metodo play()
dell’oggetto NetStream.
Attivare la modalità di generazione dati
Chiamate play(null)
per attivare la "modalità di generazione dati". In questa modalità, chiamate il metodo appendBytes()
per consegnare dati a NetStream. Utilizzate la modalità di generazione dati per inviare contenuto in streaming via HTTP dal modulo di origine streaming dinamico HTTP Adobe su un server HTTP Apache. Lo streaming dinamico HTTP consente ai client di passare rapidamente a qualsiasi punto di un file. Il framework OSMF (Open Source Media Framework) supporta lo streaming dinamico HTTP per gli streaming vod e dal vivo. Per vedere degli esempi di utilizzo della modalità di generazione dati NetStream, scaricate il framework OSMF. Per ulteriori informazioni sullo streaming dinamico HTTP, vedete HTTP Dynamic Streaming.
Quando utilizzate questo metodo senza Flash Media Server, non sussistono considerazioni relative alla sicurezza. A un file che si trova nella sandbox locale attendibile o nella sandbox locale con collegamento di rete è consentito caricare ed eseguire un file video dalla sandbox remota, ma non di accedere ai dati del file remoto senza un'autorizzazione esplicita sotto forma di file di criteri per gli URL. Inoltre, è possibile impedire che un file SWF in esecuzione in Flash Player utilizzi questo metodo impostando il parametro allowNetworking
dei tag object
ed embed
nella pagina HTML che include il contenuto SWF. Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player
Parametri
... arguments — Riprodurre un file locale
La posizione del file multimediale. L'argomento può essere una stringa, una proprietà Riprodurre un file da Flash Media Server
È possibile riprodurre i formati file descritti nella tabella seguente. La sintassi varia in base al formato file.
Attivare la modalità di generazione dati
Per attivare la "modalità di generazione dati", passate il valore Considerazioni speciali per il video H.264 in AIR 3.0 per iOS Per il video H.264, le API iOS per la riproduzione video accettano solo un URL che punta a un file o a un flusso. Non è possibile passare un buffer di dati video H264 da decodificare. A seconda dell'origine video, passate l'argomento appropriato a
|
Eventi
status: — Inviato quando si tenta di riprodurre un contenuto crittografato con DRM (Digital Rights Management). Il valore della proprietà code è "DRM.encryptedFLV" .
|
Genera
SecurityError — I file SWF non attendibili locali potrebbero non essere in grado di comunicare con Internet. Questa limitazione può essere risolta riclassificando il file SWF come file locale con utilizzo in rete o come attendibile.
| |
ArgumentError — È necessario specificare almeno un parametro.
| |
Error — L'oggetto NetStream non è valido. Ciò può dipendere da una NetConnection non riuscita.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
play()
.
ns.play("mp4:samples/record1.f4v", 0, 100, true);
ns.play("livestream");
var MyVideo:Video = new Video(); addChild(MyVideo); var MyNC:NetConnection = new NetConnection(); MyNC.connect(null); var MyNS:NetStream = new NetStream(MyNC); MyVideo.attachNetStream(MyNS); MyNS.play("http://www.helpexamples.com/flash/video/clouds.flv"); //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 }
play2 | () | metodo |
public function play2(param:NetStreamPlayOptions):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Passa direttamente tra file con più velocità di trasmissione e consente a NetStream di riprendere la riproduzione quando una connessione si interrompe e viene riconnessa.
Questo metodo è una versione avanzata di NetStream.play()
. In modo analogo al metodo play()
, il metodo play2()
inizia la riproduzione di un file multimediale o mette in coda i file multimediali per creare un elenco di riproduzione. Quando viene utilizzato con Flash Media Server, può anche richiedere al server di passare a un diverso file multimediale. La transizione avviene automaticamente nell'applicazione client. Le seguenti funzionalità utilizzano il passaggio di streaming play2()
:
Streaming dinamico
Lo streaming dinamico (supportato in Flash Media Server 3.5 e versioni successive) consente di fornire un flusso codificato a più velocità di trasmissione. Mentre cambiano le condizioni di rete di un utente, viene fornita la velocità di trasmissione appropriata per consentire una visualizzazione ottimale. Utilizzate la classe NetStreamInfo
per monitorare le condizioni della rete e alternare i flussi in base ai dati. Potete anche alternare i flussi per client con capacità diverse. Per ulteriori informazioni, vedete l'argomento relativo allo "streaming dinamico" nella "Adobe Flash Media Server Developer Guide" (Guida per sviluppatori di Adobe Flash Media Server).
Adobe ha creato una classe ActionScript personalizzata di nome DynamicStream, che estende la classe NetStream. Potete utilizzare la classe DynamicStream per implementare lo streaming dinamico in un'applicazione anziché scrivere del codice personalizzato che rilevi le condizioni della rete. Anche se decidete di scrivere del codice di streaming dinamico, utilizzate la classe DynamicStream come implementazione di riferimento. Scaricate la classe e la relativa documentazione dalla pagina relativa agli strumenti e download per Flash Media Server.
Riconnessione del flusso
La riconnessione del flusso (supportata in Flash Media Server 3.5.3 e versioni successive) consente agli utenti di usufruire della riproduzione ininterrotta di contenuti multimediali, anche in caso di perdita della connessione. Il contenuto multimediale utilizza il buffer per la riproduzione mentre la logica di ActionScript ristabilisce la connessione a Flash Media Server. Dopo la riconnessione, chiamate NetStream.attach()
per utilizzare lo stesso oggetto NetStream con new NetConnection. Utilizzate le API NetStream.attach()
, NetStreamPlayTransitions.RESUME
e NetStreamPlayTrasitions.APPEND_AND_WAIT
per riconnettere un flusso. Per ulteriori informazioni, vedete la documentazione di Flash Media Server.
Parametri
param:NetStreamPlayOptions |
Elementi API correlati
preloadEmbeddedData | () | metodo |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.5, Flash Lite 4 |
Estrae i metadati DRM presenti in un file multimediale archiviato localmente.
Utilizzate preloadEmbeddedMetaData()
come prima fase del processo di scaricamento e memorizzazione nella cache dei voucher DRM richiesti per la riproduzione non in linea. Quando vengono rilevati dei metadati DRM incorporati in un file multimediale, un oggetto DRMContentData viene passato alla funzione onDRMContentData
del client NetStream. Tale oggetto DRMContentData contiene le informazioni necessarie per ottenere il voucher richiesto per la riproduzione del contenuto. Passate DRMContentDataObject al metodo loadVoucher()
di DRMManager per scaricare il voucher.
Il precaricamento di un voucher DRM comprende le fasi seguenti:
-
Create un nuovo oggetto NetStream per precaricare i metadati.
- Assegnate una funzione di callback alla proprietà
onDRMContentData
delclient
NetStream. - Create un nuovo oggetto NetStreamPlayOptions e impostatene la proprietà
streamName
sulla stringa URL del file video locale. - Chiamate
preloadEmbeddedMetadata()
, passando l'oggetto NetStreamPlayOptions. - In risposta al callback di
onDRMContentData
, chiamate il metodoloadVoucher()
di DRMManager, passando l'oggetto DRMContentData. Se la proprietàauthenticationMethod
dell'oggetto DRMContentData ha il valoreuserNameAndPassWord
, autenticate l'utente sul server di gestione dei diritti multimediali (Media Rights Server) prima di caricare il voucher. - Chiudete il NetStream utilizzato per il precaricamento.
Nota: per utilizzare lo stesso oggetto NetStream sia per precaricare i metadati che per riprodurre il contenuto, per avviare la riproduzione attendete la chiamata a onPlayStatus
generata dall'operazione di precaricamento.
I voucher scaricati vengono memorizzati in una memoria cache locale. Anche quando riproducete contenuti in linea vengono scaricati e memorizzati nella cache dei voucher. Quando viene visualizzato un file di contenuti con protezione DRM, un voucher memorizzato nella cache viene automaticamente recuperato dall'archivio locale. Utilizzate DRMManager per gestire la cache dei voucher.
Note: il caricamento dei metadati DRM attraverso le connessioni HTTP, HTTPS o RTMP non è supportato. Potete precaricare i metadati solo dai file memorizzati nel file system.
Parametri
param:NetStreamPlayOptions — Un oggetto NetStreamPlayOptions che descrive le opzioni da utilizzare durante l'elaborazione del file del contenuto.
|
Elementi API correlati
publish | () | metodo |
public function publish(name:String = null, type:String = null):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Invia lo streaming audio, video e dei messaggi di dati da un client a un Flash Media server, con l'opzione di registrazione dello streaming nel corso della trasmissione. Questo metodo invia un oggetto NetStatusEvent con informazioni relative al flusso. Prima di chiamare NetStream.publish()
, catturate l'evento "NetConnection.Connect.Success"
per verificare che l'applicazione abbia stabilito correttamente la connessione con Flash Media Server.
In fase di pubblicazione, potete registrare i file in formato FLV o F4V. Se registrate un file in formato F4V, dovete utilizzare uno strumento flattener per modificare o riprodurre il file in un'altra applicazione. Per scaricare lo strumento, vedete www.adobe.com/go/fms_tools_it.
Nota:non utilizzate questo metodo per riprodurre un flusso di streaming. Per riprodurre un flusso, chiamate il metodo NetStream.play()
.
Flusso di lavoro per la pubblicazione di un flusso
- Create un oggetto NetConnection e chiamate
NetConnection.connect()
. - Chiamate
NetConnection.addEventListener()
per intercettare gli eventi NetStatusEvent. - Quando si verifica l'evento
"NetConnection.Connect.Success"
, create un oggetto NetStream e passate l'oggetto NetConnection alla funzione di costruzione. - Per acquisire audio e video, chiamate il metodo
NetStream.attachAudio()
e il metodoNetStream.attachCamera()
. - Per pubblicare un flusso, chiamate il metodo
NetStream.publish()
. Potete registrare i dati mentre li pubblicate, in modo che gli utenti possano riprodurli in un secondo momento.
Nota: un NetStream può pubblicare un flusso oppure riprodurlo, ma non eseguire le entrambe operazioni. Per pubblicare un flusso e visualizzare la riproduzione dal server, create due oggetti NetStream. Potete inviare più oggetti NetStream tramite un unico oggetto NetConnection.
Quando Flash Media Server registra un flusso, crea un file. Per impostazione predefinita, il server crea una directory con il nome di istanza applicazione passato a NetConnection.connect()
e memorizza il file nella directory. Il codice seguente, ad esempio, connette l'istanza predefinita dell'applicazione "lectureseries" e registra un flusso chiamato "lecture". Il file "lecture.flv" viene registrato nella directory applications/lectureseries/streams/_definst_:
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://fms.example.com/lectureseries"); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
Nell'esempio seguente viene stabilita la connessione con l'istanza "monday" della stessa applicazione. Il file "lecture.flv" viene registrato nella directory /applications/lectureseries/streams/monday:
var nc:NetConnection = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); nc.connect("rtmp://fms.example.com/lectureseries/monday"); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
Parametri
name:String (default = null ) — Una stringa che identifica lo streaming. I client che effettuano il subscribing a questo flusso passano questo nome quando effettuano la chiamata a NetStream.play() . Non fate seguire il nome dello stream da una "/". Non utilizzate per uno stream un nome quale ad esempio "bolero/" .
Potete registrare file nei formati descritti nella tabella seguente (non è possibile utilizzare
| |||||||||||||
type:String (default = null ) — Una stringa che specifica come pubblicare lo streaming. I valori validi sono "record ", "append ", "appendWithGap " e "live ". Il valore predefinito è "live ".
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
Per eseguire l'esempio, avete bisogno di una videocamera collegata al computer. Dovete anche aggiungere un componente Button e un componente Label alla libreria.
L'applicazione è dotata di un pulsante che permette di pubblicare un flusso (inviarlo a Flash Media Server) solo dopo l'apertura della connessione al server. L'applicazione riproduce il flusso dal server solo dopo che è stato pubblicazione correttamente. NetStatusEvent
restituisce un oggetto info
con una proprietà code
che specifica questi casi. La funzione netStatusHandler
gestisce questi eventi per le classi NetConnection e NetStream.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.media.Camera; import flash.net.NetConnection; import flash.net.NetStream; import fl.controls.Button; import fl.controls.Label; public class NetStream_publish extends Sprite { private var connectionURL:String = "rtmp://localhost/live/"; private var videoURL:String = "liveVideo"; private var nc:NetConnection; private var ns_publish:NetStream; private var ns_playback:NetStream; private var video_publish:Video; private var video_playback:Video; private var cam:Camera; private var b:Button; private var l:Label; public function NetStream_publish() { setUpUI(); nc = new NetConnection(); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Add bandwidth detection handlers on the NetConnection Client to // prevent Reference Errors at runtime when using the "live" and "vod" applications. var clientObj:Object = new Object(); clientObj.onBWDone = onBWDone; clientObj.onBWCheck = onBWCheck; nc.client = clientObj; // Connect to the "live" application on Flash Media Server. nc.connect(connectionURL); } private function netStatusHandler(event:NetStatusEvent):void { trace(event.info.code + " | " + event.info.description); switch (event.info.code) { case "NetConnection.Connect.Success": // Enable the "Publish" button after the client connects to the server. b.enabled = true; break; case "NetStream.Publish.Start": playbackVideo(); break; } } private function publishVideo(event:MouseEvent):void{ // Disable the button so that you can only publish once. b.enabled = false; // Create a NetStream to send video to FMS. ns_publish = new NetStream(nc); ns_publish.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Publish (send) the video to FMS. cam = Camera.getCamera(); ns_publish.attachCamera(cam); ns_publish.publish(videoURL); } private function playbackVideo():void { // Create the Video object to show the video on the stage video_playback = new Video(cam.width, cam.height); video_playback.x = cam.width + 20; video_playback.y = 10; addChild(video_playback); // Create a NetStream to receive the video from FMS. ns_playback = new NetStream(nc); ns_playback.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); // Display the video that was published to FMS. video_playback.attachNetStream(ns_playback); ns_playback.play(videoURL); } private function setUpUI():void { b = new Button(); b.addEventListener(MouseEvent.CLICK, publishVideo); b.width = 150; b.label = "Publish video to server"; b.move(10, 150); b.enabled = false; l = new Label(); l.width = 150; l.text = "Playing back from server" l.move(190, 150); addChild(b); addChild(l); } // Handlers called by the Flash Media Server "live" and "vod" applications. public function onBWDone(... rest):Boolean { return true; } public function onBWCheck(... rest):Number { return 0; } } }
receiveAudio | () | metodo |
public function receiveAudio(flag:Boolean):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Specifica se l'audio in entrata viene riprodotto nel flusso. Questo metodo è disponibile solo per i client che hanno effettuato il subscribing al flusso specificato. Non è disponibile a chi ha pubblicato il flusso. Chiamate questo metodo prima o dopo la chiamata al metodo NetStream.play()
. Ad esempio, associate questo metodo a un pulsante per consentire agli utenti di attivare o disattivare l'audio. Utilizzate questo metodo solo nei flussi unicast riprodotti da Flash Media Server. Questo metodo non funziona con i flussi RTMFP multicast né quando si usa il metodo NetStream.appendBytes()
.
Parametri
flag:Boolean — Specifica se l'audio in entrata viene riprodotto (true ) o meno (false ) nello streaming. Il valore predefinito è true . Se il flusso specificato contiene solo dati audio, NetStream.time cessa di aumentare quando passate false .
|
receiveVideo | () | metodo |
public function receiveVideo(flag:Boolean):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Specifica se il video in entrata viene riprodotto nel flusso. Questo metodo è disponibile solo per i client che hanno effettuato il subscribing al flusso specificato. Non è disponibile a chi ha pubblicato il flusso. Chiamate questo metodo prima o dopo la chiamata al metodo NetStream.play()
. Ad esempio, associate questo metodo a un pulsante per consentire agli utenti di visualizzare o nascondere il video. Utilizzate questo metodo solo nei flussi unicast riprodotti da Flash Media Server. Questo metodo non funziona con i flussi RTMFP multicast né quando si usa il metodo NetStream.appendBytes()
.
Parametri
flag:Boolean — Specifica se il video in entrata viene riprodotto (true ) o meno (false ) in questo flusso. Il valore predefinito è true . Se il flusso specificato contiene solo dati video, NetStream.time cessa di aumentare quando passate false .
|
receiveVideoFPS | () | metodo |
public function receiveVideoFPS(FPS:Number):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Specifica la frequenza fotogrammi del video in entrata. Questo metodo è disponibile solo per i client che hanno effettuato il subscribing al flusso specificato. Non è disponibile a chi ha pubblicato il flusso. Chiamate questo metodo prima o dopo la chiamata al metodo NetStream.play()
. Ad esempio, chiamate questo metodo per consentire agli utenti di impostare la frequenza dei fotogrammi video. Per determinare la frequenza fotogrammi corrente, utilizzate NetStream.currentFPS
. Per cessare di ricevere il video, passate 0
.
Quando passate un valore al parametro FPS per limitare la frequenza fotogrammi del video, Flash Media Server tenta di ridurre la frequenza fotogrammi conservando l'integrità del video. Tra un fotogramma chiave e quello successivo, il server invia il numero minimo di fotogrammi necessario per soddisfare la frequenza desiderata. Tenete presente che tutti gli I-frame (intermediate frame, fotogrammi intermedi) devono essere inviati in modo contiguo, altrimenti il video risulta danneggiato. Di conseguenza, il numero desiderato di fotogrammi viene inviato immediatamente e in modo contiguo dopo un fotogramma chiave. Dal momento che i fotogrammi non sono distribuiti in modo uniforme, il movimento appare fluido nei segmenti inframezzati da interruzioni.
Utilizzate questo metodo solo nei flussi unicast riprodotti da Flash Media Server. Questo metodo non funziona con i flussi RTMFP multicast né quando si usa il metodo NetStream.appendBytes()
.
Parametri
FPS:Number — Specifica la frequenza fotogrammi al secondo con cui viene riprodotto il video in entrata.
|
resetDRMVouchers | () | metodo |
public static function resetDRMVouchers():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 11.8, Flash Lite 4 |
Nelle applicazioni AIR, elimina tutti i dati del voucher DRM (Digital Rights Management) memorizzati nella cache locale. Per le applicazioni basate su browser, è disponibile solo durante gli errori 3322 e si comporta come il riquadro Impostazioni di riproduzione del contenuto protetto.
L'applicazione deve scaricare nuovamente qualunque voucher richiesto dal server di gestione dei diritti multimediali (Media Rights Server) per consentire all'utente di accedere ai contenuti protetti. La chiamata a questa funzione equivale alla chiamata alla funzione resetDRMVouchers()
dell'oggetto DRMManager.
Genera
IOError — I dati del voucher non possono essere eliminati.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
NetStream.resetDRMVouchers();
resume | () | metodo |
public function resume():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
riprende la riproduzione di uno streaming video in pausa. Se il video è già in fase di riproduzione, la chiamata a questo metodo non ha alcun effetto.
Elementi API correlati
seek | () | metodo |
public function seek(offset:Number):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Cerca il fotogramma chiave (anche chiamato I-frame nell'industria video) più vicino alla posizione specificata. Il fotogramma chiave viene situato in corrispondenza di un offset, espresso in secondi, rispetto all'inizio dello stream.
Gli stream video sono solitamente codificati attraverso due tipi di fotogrammi: fotogrammi chiave (o I-frame) e fotogrammi P (P-frame). Un fotogramma chiave contiene un'immagine intera, mentre un fotogramma P è un fotogramma provvisorio che fornisce delle informazioni aggiuntive tra fotogrammi chiave. L'intervallo di fotogrammi tra un fotogramma chiave e l'altro in uno stream è solitamente compreso tra 10 e 50 fotogrammi.
Flash Media Server offre diversi tipi di comportamento di ricerca: ricerca ottimizzata e ricerca intelligente.
Ricerca avanzata
La ricerca avanzata è attivata per impostazione predefinita. Per disattivare la ricerca avanzata in Flash Media Server, impostate l'elemento EnhancedSeek
nel file di configurazione Application.xml
su false
.
Se la ricerca avanzata è attivata, il server genera un nuovo fotogramma chiave in corrispondenza dell'offset
basato sul fotogramma chiave precedente e sul più vicino fotogramma P. La generazione di fotogrammi chiave causa tuttavia un elevato carico di elaborazione sul server, per cui nel fotogramma chiave generato potrebbe verificarsi una distorsione. Se il codec video è On2, il fotogramma chiave prima del punto di avanzamento e tutti i fotogrammi P situati tra il fotogramma chiave e il punto di avanzamento vengono inviati al client.
Se la ricerca avanzata è disattivata, il server avvia lo streaming dal fotogramma chiave più vicino. Ad esempio, supponete che un video contenga dei fotogrammi chiave a 0 secondi e a 10 secondi. Una ricerca a 4 secondi fa sì che la riproduzione inizi a 4 secondi utilizzando il fotogramma chiave a 0 secondi. Il video rimane immobile finché non raggiunge il successivo fotogramma chiave posto sui 10 secondi. Per ottenere una migliore esperienza di avanzamento è necessario ridurre l'intervallo tra i fotogrammi chiave. Nella modalità di avanzamento normale non è possibile avviare un video in un punto situato tra due fotogrammi chiave.
Ricerca intelligente
Per attivare la ricerca intelligente, impostate NetStream.inBufferSeek
su true
.
La ricerca intelligente consente a Flash Player di cercare nei buffer indietro e avanti esistenti. Quando la ricerca intelligente è attivata, ogni volta viene chiamato seek()
, Flash Player svuota il buffer e richiede i dati dal server server. Per ulteriori informazioni, vedete NetStream.inBufferSeek
.
Ricerche nella modalità di generazione dati
Quando chiamate seek()
su un oggetto NetStream in modalità di generazione dati, tutti i byte passati a appendBytes()
vengono scartati (ovvero non inseriti nel buffer, accumulati nel FIFO messaggi parziali o analizzati per verificare se sono presenti punti di ricerca) finché non chiamate appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
o appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)
per ripristinare il parser. Per informazioni sulla modalità di generazione, vedete NetStream.play()
.
Parametri
offset:Number — Valore approssimativo, espresso in secondi, per il passaggio a un file video. Con Flash Media Server, se <EnhancedSeek> è impostato su true nel file di configurazione Application.xml (che è quello predefinito), il server genera un fotogramma chiave nell'offset .
|
Elementi API correlati
send | () | metodo |
public function send(handlerName:String, ... arguments):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Invia un messaggio su uno streaming pubblicato a tutti i client che hanno effettuato il subscribing. Questo metodo è disponibile solo per chi pubblica lo streaming specificato. Questo metodo è utilizzabile solo con Flash Media Server. Per elaborare e dare una risposta a questo messaggio, create un gestore sull'oggetto NetStream
come ad esempio ns.HandlerName
.
Flash Player o AIR non serializza i metodi o i relativi dati, le variabili del prototipo dell'oggetto o le variabili non enumerabili. Per gli oggetti di visualizzazione, Flash Player o AIR serializza il percorso ma nessun dato.
È possibile chiamare il metodo send()
per aggiungere fotogrammi chiave di dati a uno stream live pubblicato su Flash Media Server. Un fotogramma chiave di dati è un messaggio che chi pubblica lo stream aggiunge allo stesso. I fotogrammi chiave di dati vengono utilizzati solitamente per aggiungere dei metadati a uno stream live prima che i dati vengano catturato per lo stream stesso da una camera e da un microfono. Chi pubblica può aggiungere un fotogramma chiave di dati in qualsiasi momento nel corso della pubblicazione dello stream live. Il fotogramma chiave di dati viene salvato nella memoria del server fino a quando chi pubblica è connesso al server.
I client che hanno effettuato il subscribing allo stream live prima che il fotogramma chiave di dati venisse aggiunto lo ricevono nel momento stesso in cui viene aggiunto. I client che effettuano il subscribing allo stream live dopo che il fotogramma chiave di dati è stato aggiunto lo ricevono al momento del subscribing.
Per aggiungere un fotogramma chiave di metadati a uno stream live inviato a Flash Media Server, utilizzate @setDataFrame
come nome del gestore, seguito da due ulteriori argomenti, come ad esempio:
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
L'argomento @setDataFrame
si riferisce a uno speciale gestore incorporato in Flash Media Server. L'argomento onMetaData
è il nome di una funzione di callback nell'applicazione client che ascolta l'evento onMetaData
event e recupera i metadati. Il terzo elemento, metaData
, è un'istanza di Object
o di Array
le cui proprietà definiscono i valori dei metadati.
Utilizzate @clearDataFrame
per cancellare i metadati di un fotogramma chiave che è stato già inserito nello stream:
ns.send("@clearDataFrame", "onMetaData");
Parametri
handlerName:String — Il messaggio da inviare, oltre al nome del gestore ActionScript che deve ricevere il messaggio. Il nome del gestore può avere una profondità di un solo livello (cioè, non può essere di tipo principale/secondario) ed è relativo all'oggetto stream. Non utilizzate un termine riservato per il nome di un gestore. Ad esempio, se utilizzate "close " come nome del gestore, il metodo non funziona. Con Flash Media Server, utilizzate @setDataFrame per aggiungere un fotogramma chiave di metadati a uno stream live o @clearDataFrame per rimuovere il fotogramma chiave.
| |
... arguments — Gli argomenti opzionali possono essere di qualsiasi tipo. Vengono serializzati e inviati sulla connessione e il gestore di ricezione li riceve nello stesso ordine. Se un parametro è un oggetto circolare (ad esempio, un elenco collegato che è circolare), la funzione di serializzazione gestisce i riferimenti correttamente. Con Flash Media Server, se @setDataFrame è il primo argomento, utilizzate onMetaData come secondo argomento; come terzo argomento inserire un'istanza di Object o Array che abbia i metadati impostati come proprietà. Per un elenco di nomi di proprietà consigliati, vedete Flash Media Server Developer Guide (Guida allo sviluppo di Flash Media Server). Con @clearDataFrame come primo argomento, utilizzate onMetaData come secondo argomento e non inserite alcun terzo argomento.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
NetStream
. Il primo viene utilizzato per pubblicare uno stream live sul server, mentre l'altro per effettuare il subscribing allo stream.
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.media.Video; import flash.utils.setTimeout; public class TestExample extends Sprite { var nc:NetConnection = new NetConnection(); var ns1:NetStream; var ns2:NetStream; var vid:Video = new Video(300,300); var obj:Object = new Object(); public function TestExample() { nc.objectEncoding = 0; nc.addEventListener("netStatus", onNCStatus); nc.connect("rtmp://localhost/FlashVideoApp"); addChild(vid); } function onNCStatus(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": trace("You've connected successfully"); ns1 = new NetStream(nc); ns2 = new NetStream(nc); ns1.client = new CustomClient(); ns1.publish("dummy", "live"); ns2.client = new CustomClient(); vid.attachNetStream(ns2); ns2.play("dummy"); setTimeout(sendHello, 3000); break; case "NetStream.Publish.BadName": trace("Please check the name of the publishing stream" ); break; } } function sendHello():void { ns1.send("myFunction", "hello"); } } } class CustomClient { public function myFunction(event:String):void { trace(event); } }
private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Publish.Start": var metaData:Object = new Object(); metaData.title = "myStream"; metaData.width = 400; metaData.height = 200; ns.send("@setDataFrame", "onMetaData", metaData); ns.attachCamera( Camera.getCamera() ); ns.attachAudio( Microphone.getMicrophone() ); } }
onMetaData
. Il gestore di eventi onMetaData
non è registrato in addEventListener()
; si tratta, invece di un funzione di callback il cui nome è onMetaData
, per esempio:
public function onMetaData(info:Object):void { trace("width: " + info.width); trace("height: " + info.height); }
// Create a NetStream for playing var my_ns:NetStream = new NetStream(my_nc); my_video.attachNetStream(my_ns); // Play the stream record1 my_ns.play("record1", 0, -1, true); // Switch to the stream live1 and play for 5 seconds. // Since reset is false, live1 will start to play after record1 is done. my_ns.play("live1", -1 , 5, false);
//To play at normal speed var my_ns:NetStream = new NetStream(my_nc); my_ns.play("log", 0, -1); //To get the data messages all at once my_ns.play("log", 0, -1, 3);
setDRMAuthenticationCredentials | () | metodo |
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Lite 4 |
Imposta le credenziali di autenticazione DRM necessarie per visualizzare il contenuto crittografato sottostante.
Il metodo setDRMAuthenticationCredentials()
deve fornire le credenziali che corrispondono a quelle conosciute e accettate dal fornitore di contenuti o dal server proxy. Si tratta delle stesse credenziali utilizzate dall'utente quando ottiene il permesso di visualizzare il contenuto.
Parametri
userName:String — Una credenziale valida per il nome utente.
| |
password:String — La credenziale password che corrisponde al nome utente fornito.
| |
type:String — Una stringa che specifica il tipo di credenziali di autenticazione fornite. I valori validi sono "drm" e "proxy" . Il valore predefinito è "drm" .
|
Elementi API correlati
step | () | metodo |
public function step(frames:int):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Avanza o retrocede del numero di fotogrammi specificato rispetto al fotogramma attualmente visualizzato. Specificate un numero positivo per avanzare e un numero negativo per procedere a ritroso. Chiamate questo metodo per creare funzionalità accurate di avanzamento rapido e riavvolgimento.
Nota: questo metodo non è supportato per il video H.264 in AIR 3.0 per iOS.
Questo metodo è disponibile solo durante lo streaming dei dati da Flash Media Server 3.5.3 o versioni successive e quando NetStream.inBufferSeek
è true
. Inoltre, il fotogramma di destinazione deve essere all'interno del buffer. Se, ad esempio, il fotogramma visualizzato è il numero 120 e specificate il valore 1000, il metodo ha esito negativo se il numero 1120 non è presente nel buffer.
Questo metodo è studiato per essere utilizzato in combinazione con il metodo pause()
o togglePause()
. Se avanzate o arretrate di 10 fotogrammi durante la riproduzione senza effettuare una pausa, potreste notare i passaggi oppure una specie di difetto nella riproduzione. Inoltre, quando chiamate pause()
o togglePause
, l'audio viene soppresso.
Se la chiamata a NetStream.step()
riesce, viene inviato un oggetto NetStatusEvent con "NetStream.Step.Notify" come valore della proprietà code
dell'oggetto info.
Parametri
frames:int |
Elementi API correlati
togglePause | () | metodo |
public function togglePause():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sospende o riprende la riproduzione di un flusso. La prima volta che viene chiamato questo metodo, la riproduzione viene messa in pausa; la volta successiva la riproduzione viene ripresa. È possibile utilizzare questo metodo per consentire agli utenti di mettere in pausa o riprendere la riproduzione premendo un solo pulsante.
Elementi API correlati
asyncError | Evento |
flash.events.AsyncErrorEvent
proprietà AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando viene generata un'eccezione in modo asincrono, cioè da un codice asincrono nativo. Questo evento viene inviato quando un server chiama un metodo sul client che non è definito.
La costanteAsyncErrorEvent.ASYNC_ERROR
definisce il valore della proprietà type
di un oggetto evento asyncError
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto che invia l'evento. |
error | L'errore che ha attivato l'evento. |
Elementi API correlati
drmAuthenticate | Evento |
flash.events.DRMAuthenticateEvent
proprietà DRMAuthenticateEvent.type =
flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Lite 4 |
Inviato quando un oggetto NetStream tenta di riprodurre un contenuto con crittografia DRM che per essere riprodotto richiede una credenziale utente come autenticazione.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
Utilizzate il metodo setDRMAuthenticationCredentials()
dell'oggetto NetStream per autenticare l'utente. Se l'autenticazione dell'utente ha dato esito negativo, l'applicazione ritenta l'autenticazione e invia un nuovo evento DRMAuthenticateEvent per l'oggetto NetStream.
DRMAuthenticateEvent.DRM_AUTHENTICATE
definisce il valore della proprietà type
di un oggetto evento DRMAuthenticateEvent.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
authenticationType | Indica se le credenziali fornite sono per l'autenticazione sul server FMRMS (Flash Media Rights Management Server) o su un server proxy. |
bubbles | false |
cancelable | false non è presente alcun comportamento predefinito da annullare. |
header | L'intestazione del file di contenuto crittografato fornita dal server. |
netstream | L'oggetto NetStream che ha avviato l'evento. |
passwordPrompt | Una richiesta di credenziale password fornita dal server. |
target | L'oggetto NetStream. |
urlPrompt | Una richiesta di visualizzazione URL fornita dal server. |
usernamePrompt | Una richiesta di credenziale nome utente, fornita dal server. |
Elementi API correlati
drmError | Evento |
flash.events.DRMErrorEvent
proprietà DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Inviato quando un oggetto NetStream che tenta di riprodurre un file con crittografia DRM incontra un errore relativo al DRM. Ad esempio, quando l'autorizzazione ha esito negativo viene inviato un oggetto DRMErrorEvent. Ciò può verificarsi perché l'utente non ha acquistato i diritti per visualizzare il contenuto o perché il fornitore del contenuto non supporta l'applicazione di visualizzazione.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
La costanteDRMErrorEvent.DRM_ERROR
definisce il valore della proprietà type
di un oggetto evento drmError
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
errorID | Un codice di errore numerico assegnato al problema. |
subErrorID | Un codice di errore che indica informazioni più dettagliate sul problema verificatosi. |
target | L'oggetto NetStream. |
Elementi API correlati
drmStatus | Evento |
flash.events.DRMStatusEvent
proprietà DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Inviato quando il contenuto con codifica DRM (Digital Rights Management) inizia la riproduzione (quando l'utente è stato autenticato e autorizzato a riprodurre il contenuto).
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
L'oggetto DRMStatusEvent contiene informazioni relative al voucher, ad esempio se il contenuto è disponibile non in linea o la scadenza del voucher con conseguente impossibilità per gli utenti di visualizzare il contenuto.
La costanteDRMStatusEvent.DRM_STATUS
definisce il valore della proprietà type
di un oggetto evento drmStatus
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
detail | Una stringa che descrive il contesto dell'evento di stato |
isAnonymous | Indica se il contenuto, protetto dalla crittografia DRM è disponibile senza che l'utente debba fornire credenziali di autenticazione. |
isAvailableOffline | Indica se il contenuto, protetto dalla crittografia DRM è disponibile non in linea. |
offlineLeasePeriod | Il numero rimanente di giorni in cui il contenuto può essere visualizzato non in linea. |
policies | Oggetto personalizzato dell'evento di stato DRM. |
target | L'oggetto NetStream. |
voucherEndDate | La data assoluta in cui il voucher scade e il contenuto non è più visibile per gli utenti. |
contentData | La classe DRMContentData per il contenuto |
voucher | L'oggetto DRMVoucher per il contenuto. |
isLocal | Indica se il contenuto è memorizzato nel file system locale |
Elementi API correlati
ioError | Evento |
flash.events.IOErrorEvent
proprietà IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando si verifica un errore di input o di output che impedisce l'operazione di rete.
Definisce il valore della proprietàtype
di un oggetto evento ioError
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
errorID | Un numero di riferimento associato all'errore specifico (solo AIR). |
target | L'oggetto di rete interessato dall'errore di input/output. |
text | Testo da visualizzare come messaggio di errore. |
mediaTypeData | Evento |
flash.events.NetDataEvent
proprietà NetDataEvent.type =
flash.events.NetDataEvent
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.3, AIR 2.7 |
Inviato quando si riproduce contenuto video e si elaborano alcuni tipi di messaggi.
Un oggetto NetDataEvent viene inviato per i messaggi seguenti:
- onCuePoint
- onImageData
- onMetaData
- onPlayStatus (per il codice NetStream.Play.Complete)
- onTextData
- onXMPData
Nota: questo evento non viene inviato dal contenuto eseguito in Flash Player nel browser nel sistema operativo Android o Blackberry Tablet oppure dal contenuto eseguito in AIR su iOS.
netStatus | Evento |
flash.events.NetStatusEvent
proprietà NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando un oggetto NetStream segnala il proprio stato o una condizione di errore. L'evento netStatus
contiene una proprietà info
, che è un oggetto informazione contenente informazioni specifiche sull'evento, ad esempio se un tentativo di connessione è riuscito o fallito.
type
di un oggetto evento netStatus
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
info | Un oggetto con proprietà che ne descrivono lo stato o la condizione di errore. |
target | L'oggetto NetConnection o NetStream che ne riporta lo stato. |
Elementi API correlati
onCuePoint | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Definisce un listener per rispondere quando si raggiunge un cue point incorporato durante la riproduzione di un file video. Potete utilizzare questo listener per attivare le azioni nel codice quando il video raggiunge un cue point specifico, che consente di sincronizzare altre azioni nell'applicazione con eventi di riproduzione video. Per informazioni sui formati di file video supportati da Flash Media Server, vedete www.adobe.com/go/learn_fms_fileformats_it.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
onCuePoint
è in effetti una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi in quanto risponde a un evento di dati, durante lo streaming di media utilizzando Flash Media Server o durante la riproduzione di file FLV. Per ulteriori informazioni, fate riferimento alla descrizione della classe NetStream. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare o elaborare onCuePoint
come un evento. Definite una funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Create una sottoclasse di NetStream e definite il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Il listener di eventi associato viene attivato dopo una chiamata al metodo NetStream.play()
, ma prima che l'indicatore di riproduzione del video avanzi.
I seguenti tipi di cue point possono essere incorporati in un file video:
- Un cue point di navigazione specifica un fotogramma chiave all'interno del file video e la proprietà
time
del cue point corrisponde proprio a tale fotogramma chiave. I cue point di navigazione vengono spesso utilizzati come segnalibri o punti di entrata per consentire agli utenti di navigare all'interno del file video. - Un cue point di evento specifica un tempo particolare, che può corrispondere o meno a un fotogramma chiave specifico. Un cue point di evento di solito rappresenta un momento temporale nel video, in corrispondenza del quale si verifica un evento che potrebbe essere utilizzato per attivare altri eventi di applicazione.
L'oggetto evento onCuePoint
ha le proprietà seguenti:
Proprietà | Descrizione |
---|---|
name | Nome assegnato al cue point quando è stato incorporato nel file video. |
parametri | Un array associativo di stringhe di coppie nome/valore specificato per il cue point. Per il nome o il valore del parametro è possibile utilizzare qualunque stringa valida. |
time | Il momento temporale espresso in secondi in corrispondenza del quale si è verificato il cue point nel file video durante la riproduzione. |
type | Il tipo di cue point raggiunto: di navigazione o di evento. |
È possibile definire i cue point in un file video quando si codifica il file o quando si importa un video clip nello strumento di creazione di Flash mediante la procedura guidata Importa video.
L'evento onMetaData
recupera anche le informazioni sui cue point in un file video. Tuttavia, l'evento onMetaData
ottiene le informazioni relative a tutti i cue point prima che inizi la riproduzione del video. L'evento onCuePoint
riceve le informazioni su un singolo cue point nel momento temporale specificato per tale cue point durante la riproduzione.
In generale, per fare in modo che il codice risponda a uno specifico cue point nel momento in cui si verifica, utilizzate l'evento onCuePoint
per attivare delle azioni nel codice.
È possibile utilizzare l'elenco dei cue point fornito dall'evento onMetaData
per consentire all'utente di avviare la riproduzione del video in corrispondenza di alcuni punti predefiniti nel corso dello streaming del video. Passare il valore della proprietà time
del cue point al metodo NetStream.seek()
per riprodurre il video a partire da tale cue point.
Esempio ( Come utilizzare questo esempio )
var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.client = {}; ns.client.onMetaData = ns_onMetaData; ns.client.onCuePoint = ns_onCuePoint; video.attachNetStream(ns); ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); function ns_onMetaData(item:Object):void { trace("metaData"); // Resize video instance. video.width = item.width; video.height = item.height; // Center video instance on Stage. video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; } function ns_onCuePoint(item:Object):void { trace("cuePoint"); trace(item.name + "\t" + item.time); }
Elementi API correlati
onDRMContentData | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.5, Flash Lite 4 |
Definisce un listener che risponde quando AIR estrae i metadati del contenuto DRM incorporati in un file multimediale.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
Un oggetto DRMContentData contiene le informazioni richieste per ottenere un voucher necessario per riprodurre un file multimediale protetto con DRM. Utilizzate la classe DRMManager per scaricare il voucher con queste informazioni.
onDRMContentData
è una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi poiché risponde a un evento dati quando precarica i dati incorporati provenienti da un file multimediale locale. Per ulteriori informazioni, fate riferimento alla descrizione della classe NetStream. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare o elaborare onDRMContentData
come un evento. Piuttosto, è necessario definire una funzione di callback singola e associarla direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Tuttavia, è possibile creare una sottoclasse di NetStream e definire un gestore di eventi nella sottoclasse oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Elementi API correlati
onImageData | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Definisce un listener per rispondere quando Flash Player riceve dati dell'immagine come array di byte incorporato in un file multimediale in riproduzione. I dati dell'immagine possono produrre contenuto JPEG, PNG o GIF. Utilizzate il metodo flash.display.Loader.loadBytes()
per caricare l'array di byte in un oggetto di visualizzazione.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
onImageData
è in effetti una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi in quanto risponde a un evento di dati, durante lo streaming di media utilizzando Flash Media Server o durante la riproduzione di file FLV. Per ulteriori informazioni, fate riferimento alla descrizione della classe NetStream. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare, o elaborare, onImageData
come un evento. Definite una singola funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Create una sottoclasse di NetStream e definite il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Il listener di eventi associato viene attivato dopo una chiamata al metodo NetStream.play()
, ma prima che l'indicatore di riproduzione del video avanzi.
L'oggetto evento onImageData contiene i dati dell'immagine come array di byte inviato tramite un canale dati AMF0.
Esempio ( Come utilizzare questo esempio )
Netstream.client
per gestire le funzioni di callback per onTextData
e onImageData
. La funzione onImageDataHandler()
utilizza l'oggetto evento onImageData imageData
per archiviare l'array di byte. La funzione onTextDataHandler()
, inoltre, utilizza l'oggetto evento onTextData textData
per archiviare gli elementi dei dati di testo (ognuno di questi elementi è una proprietà dell'oggetto textData
).
Nel codice, dovete utilizzare una posizione reale di un file multimediale con metadati di immagine o testo al posto della posizione "yourURL"
.
Potete inoltre gestire i dati di testo e di immagine utilizzando una classe personalizzata. Per ulteriori informazioni ed esempi, potete vedere l'articolo Handling metadata and cue points in Flash video (Gestione di metadati e cue point in Flash Video).
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var my_video:Video = new Video(); addChild(my_video); var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
Elementi API correlati
onMetaData | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Definisce un listener per rispondere quando Flash Player riceve informazioni descrittive incorporate nel video in riproduzione. Per informazioni sui formati di file video supportati da Flash Media Server, vedete www.adobe.com/go/learn_fms_fileformats_it.
onMetaData
è in effetti una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi in quanto risponde a un evento di dati, durante lo streaming di media utilizzando Flash Media Server o durante la riproduzione di file FLV. Per ulteriori informazioni, fate riferimento alla descrizione della proprietà NetStream.client
. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare, o elaborare, onMetaData
come un evento. Definite una singola funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Potete creare una sottoclasse di NetStream e definire il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
L'utilità Flash Video Exporter (versione 1.1 o successiva) incorpora la durata, la data di creazione, i trasferimenti dati e altre informazioni relative al video nel video stesso. Encoder video diversi incorporano serie di metadati diverse.
Il listener di eventi associato viene attivato dopo una chiamata al metodo NetStream.play()
, ma prima che l'indicatore di riproduzione del video avanzi.
In molti casi il valore di durata incorporato nei metadati FLV si avvicina alla durata effettiva ma non corrisponde esattamente. In altre parole non corrisponde sempre al valore della proprietà NetStream.time
quando l'indicatore di riproduzione si trova alla fine dello streaming video.
L'oggetto evento passato al gestore di eventi onMetaData contiene una proprietà per ogni dato.
Esempio ( Come utilizzare questo esempio )
var video:Video = new Video(); addChild(video); var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.client = {}; ns.client.onMetaData = ns_onMetaData; ns.client.onCuePoint = ns_onCuePoint; video.attachNetStream(ns); ns.play("http://www.helpexamples.com/flash/video/cuepoints.flv"); function ns_onMetaData(item:Object):void { trace("metaData"); // Resize video instance. video.width = item.width; video.height = item.height; // Center video instance on Stage. video.x = (stage.stageWidth - video.width) / 2; video.y = (stage.stageHeight - video.height) / 2; } function ns_onCuePoint(item:Object):void { trace("cuePoint"); trace(item.name + "\t" + item.time); }
Elementi API correlati
onPlayStatus | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Definisce un listener per rispondere quando un oggetto NetStream ha completato la riproduzione di un flusso. L'oggetto evento associato fornisce informazioni oltre a quelle restituite dall'evento netStatus
. Potete utilizzare questa proprietà per attivare delle azioni nel codice quando un oggetto NetStream è passato da uno streaming a un altro in un elenco di riproduzione (come indicato dell'oggetto informazione NetStream.Play.Switch
) o quando un oggetto NetStream ha effettuato la riproduzione fino alla fine (come indicato dall'oggetto informazione NetStream.Play.Complete
).
onPlayStaus
è in effetti una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi in quanto risponde a un evento di dati, durante lo streaming di media utilizzando Flash Media Server o durante la riproduzione di file FLV. Per ulteriori informazioni, fate riferimento alla descrizione della classe NetStream. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare o elaborare onPlayStatus
come un evento. Definite una funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Create una sottoclasse di NetStream e definite il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Questo evento può restituire un oggetto informazione con le proprietà seguenti:
Proprietà di codice | Proprietà di livello | Significato |
---|---|---|
NetStream.Play.Switch | "status" | Il subscriber passa da uno streaming a un altro all'interno di una sequenza di brani. |
NetStream.Play.Complete | "status" | La riproduzione è stata completata. |
NetStream.Play.TransitionComplete | "status" | Il subscriber passa a un nuovo flusso a seguito del passaggio di velocità di trasferimento del flusso |
Elementi API correlati
onSeekPoint | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Chiamato in modo sincrono da appendBytes()
quando il parser di byte incontra un punto che viene valutato come punto ricercabile (ad es. un fotogramma chiave video). Utilizzate questo evento per costruire una tabella di punti di ricerca. byteCount
corrisponde al valore byteCount
del primo byte del messaggio analizzabile per quel punto di ricerca, e viene reimpostato a zero come descritto sopra. Per effettuare la ricerca, in corrispondenza dell'evento NetStream.Seek.Notify
trovate i byte che iniziano su un punto ricercabile e chiamate appendBytes(bytes)
. Se l'argomento bytes
è un ByteArray
che consiste di byte che iniziano in corrispondenza del punto ricercabile, il video viene riprodotto da quel punto.
Nota: le chiamate a appendBytes()
dall'interno di questo callback vengono ignorate.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
onSeekPoint
è una proprietà dell'oggetto NetStream.client
. La proprietà è riportata nella sezione Eventi perché risponde ai dati che pervengono al metodo appendBytes()
. Per ulteriori informazioni, fate riferimento alla descrizione della proprietà NetStream.client
. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare o elaborare onSeekPoint
come un evento. Per utilizzare onSeekPoint
, definite una funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Potete tuttavia creare una sottoclasse di NetStream e definire il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Elementi API correlati
onTextData | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Definisce un listener per rispondere quando Flash Player riceve dati di testo incorporati in un file multimediale in riproduzione. I dati di testo sono in formato UTF-8 e possono contenere informazioni sulla formattazione in base alla specifica Timed Text 3GP.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
onTextData
è in effetti una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi in quanto risponde a un evento di dati, durante lo streaming di media utilizzando Flash Media Server o durante la riproduzione di file FLV. Per ulteriori informazioni, fate riferimento alla descrizione della classe NetStream. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare o elaborare onTextData
come un evento. Definite una funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Create una sottoclasse di NetStream e definite il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Il listener di eventi associato viene attivato dopo una chiamata al metodo NetStream.play()
, ma prima che l'indicatore di riproduzione del video avanzi.
L'oggetto evento onTextData contiene una proprietà per ciascun elemento dei dati di testo.
Esempio ( Come utilizzare questo esempio )
Netstream.client
per gestire le funzioni di callback per onTextData
e onImageData
. La funzione onImageDataHandler()
utilizza l'oggetto evento onImageData imageData
per archiviare l'array di byte. La funzione onTextDataHandler()
, inoltre, utilizza l'oggetto evento onTextData textData
per archiviare gli elementi dei dati di testo (ognuno di questi elementi è una proprietà dell'oggetto textData
).
Nel codice, dovete utilizzare una posizione reale di un file multimediale con metadati di immagine o testo al posto della posizione "yourURL"
.
Potete inoltre gestire i dati di testo e di immagine utilizzando una classe personalizzata. Per ulteriori informazioni ed esempi, potete vedere l'articolo Handling metadata and cue points in Flash video (Gestione di metadati e cue point in Flash Video).
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var my_video:Video = new Video(); addChild(my_video); var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
Elementi API correlati
onXMPData | Evento |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Definisce un listener per rispondere quando Flash Player riceve informazioni specifiche di Adobe Extensible Metadata Platform (XMP) incorporate nel video in riproduzione. Per informazioni sui formati di file video supportati da Flash Media Server, vedete www.adobe.com/go/learn_fms_fileformats_it.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
onXMPData
è in effetti una proprietà dell'oggetto NetStream.client
. Questa proprietà è elencata nella sezione Eventi in quanto risponde a un evento di dati, durante lo streaming di media utilizzando Flash Media Server o durante la riproduzione di file FLV. Per ulteriori informazioni, fate riferimento alla descrizione della proprietà NetStream.client
. Non potete utilizzare il metodo addEventListener()
o uno qualsiasi degli altri metodi EventDispatcher per intercettare, o elaborare, onMetaData
come un evento. Definite una funzione di callback e associatela direttamente a uno degli oggetti seguenti:
- L'oggetto a cui fa riferimento la proprietà
client
di un'istanza NetStream. - Un'istanza di una classe NetStream. NetStream è una classe chiusa; in altre parole, non è possibile aggiungere proprietà o metodi a un oggetto NetStream in fase di runtime. Potete tuttavia creare una sottoclasse di NetStream e definire il gestore di eventi in tale sottoclasse, oppure rendere dinamica la sottoclasse e aggiungere la funzione del gestore di eventi a un'istanza della sottoclasse.
Il listener di eventi associato viene attivato dopo una chiamata al metodo NetStream.play()
, ma prima che l'indicatore di riproduzione del video avanzi.
L'oggetto passato alla funzione di gestione degli eventi onXMPData()
ha una proprietà data
, che è una stringa. La stringa è generata da una UUID box di livello superiore. (L'UUID a 128 bit della box di livello superiore è BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
). La UUID box di livello superiore contiene esattamente un documento XML rappresentato come una stringa UTF-8 terminata da un byte nullo.
Elementi API correlati
status | Evento |
flash.events.StatusEvent
proprietà StatusEvent.type =
flash.events.StatusEvent.STATUS
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 1.0, Flash Lite 4 |
Inviato quanto l'applicazione tenta di riprodurre il contenuto con crittografia DRM richiamando il metodo NetStream.play()
. Il valore della proprietà del codice di stato è "DRM.encryptedFLV"
.
Nota: questo evento non è supportato per il video H.264 in AIR 3.0 per iOS.
Definisce il valore della proprietàtype
di un oggetto evento status
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
code | Una descrizione dello stato dell'oggetto. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
level | La categoria del messaggio, ad esempio "status" , "warning" o "error" . |
target | L'oggetto che riporta il proprio stato. |
Elementi API correlati
CONNECT_TO_FMS | Costante |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Un oggetto statico utilizzato come parametro della funzione di costruzione per un'istanza NetStream. Si tratta del valore predefinito del secondo parametro nella funzione di costruzione NetStream; non viene utilizzato dall'applicazione per la riproduzione progressiva di contenuti multimediali. Quando viene utilizzato, questo parametro fa in modo che la funzione di costruzione stabilisca una connessione a un'istanza di Flash Media Server.
DIRECT_CONNECTIONS | Costante |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Crea una connessione publisher da peer a peer. Passate la stringa per il secondo parametro (opzionale) alla funzione di costruzione per un'istanza NetStream. Con questa stringa, un'applicazione può creare una connessione NetStream alla scopo di pubblicare audio e video per i client.
In questo esempio, il codice che crea gli oggetti Video e NetStream e chiama i metodi Video.attachNetStream()
e NetStream.play()
viene collocato in una funzione gestore. Il gestore viene chiamato solo se il tentativo di connessione all'oggetto NetConnection ha esito positivo; cioè quando l'evento netStatus
restituisce un oggetto info
con una proprietà code
che indica l'esito positivo. È consigliabile attendere la riuscita della connessione prima di effettuare la chiamata a NetStream.play()
.
package { import flash.display.Sprite; import flash.events.NetStatusEvent; import flash.events.SecurityErrorEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.Event; public class NetConnectionExample extends Sprite { private var videoURL:String = "http://www.helpexamples.com/flash/video/cuepoints.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video = new Video(); public function NetConnectionExample() { 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("Stream not found: " + videoURL); break; } } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function connectStream():void { addChild(video); var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.client = new CustomClient(); video.attachNetStream(stream); stream.play(videoURL); } } } class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate); } public function onCuePoint(info:Object):void { trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type); } }
mdata
viene usato per impostare la larghezza e l'altezza di un'istanza video video
:
//Place the following in the connectStream() function //in the NetConnectionExample code var metaSniffer:Object=new Object(); stream.client=metaSniffer; //stream is the NetStream instance metaSniffer.onMetaData=getMeta; // Add the following function within the NetConnectionExample class private function getMeta (mdata:Object):void { video.width=mdata.width/2; video.height=mdata.height/2; }
Tue Jun 12 2018, 02:44 PM Z