Paket | flash.net |
Klass | public class NetStream |
Arv | NetStream EventDispatcher Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Använd klassen NetStream för att utföra följande:
- Anropa
NetStream.play()
för att spela en mediafil från en lokal disk, en webbserver eller från Flash Media Server. - Anropa
NetStream.publish()
för att publicera direktuppspelande videoklipp, ljud och data till Flash Media Server. - Anropa
NetStream.send()
för att skicka datameddelanden till alla mottagande klienter. - Anropa
NetStream.send()
för att lägga till metadata till ett direktflöde. - Anropa
NetStream.appendBytes()
för att skicka ByteArray-data till NetStream.
Obs! Du kan inte spela och publicera en direktuppspelning över samma NetStream-objekt.
Adobe AIR och Flash Player 9.0.115.0 och senare versioner stöder filer som härleds från det vanliga MPEG-4-behållarformatet. Dessa filer omfattar F4V, MP4, M4A, MOV, MP4V, 3GP och 3G2 om de innehåller H.264-video, HEAAC v2-kodat ljud eller bådadera. H.264 ger högre videokvalitet vid lägre bithastigheter jämfört med samma kodningsprofil i Sorenson eller On2. AAC är ett standardljudformat som definieras i MPEG-4-videostandarden. HE-AAC v2 är ett tillägg till AAC, som använder SBR-teknik (Spectral Band Replication) och PS-teknik (Parametric Stereo) för att öka kodningseffektiviteten vid låga bithastigheter.
Information om vilka kodekar och filformat som stöds finns på:
- Flash Media Server documentation
- Exploring Flash Player support for high-definition H.264 video and AAC audio
- FLV/F4V open specification documents
Ta emot data från en Flash Media Server-ström, progressiv F4V-fil eller progressiv FLV-fil
Flash Media Server, F4V-filer och FLV-filer kan skicka händelseobjekt som innehåller data vid särskilda datapunkter under direktuppspelning eller vanlig uppspelning. Du kan hantera data från ett dataflöde eller en FLV-fil under en uppspelning på två sätt:
-
Du kan associera en klientegenskap med en händelsehanterare om du vill ta emot dataobjektet. Du kan använda egenskapen
NetStream.client
om du vill tilldela ett objekt i syfte att anropa specifika datahanteringsfunktioner. Det objekt som tilldelats egenskapenNetStream.client
kan avlyssna följande datapunkter:onCuePoint()
,onImageData()
,onMetaData()
,onPlayStatus()
,onSeekPoint()
,onTextData()
ochonXMPData()
. Skriv procedurer i dessa funktioner för att hantera dataobjekt som returneras från strömmen under uppspelning. SeNetStream.client
-egenskapen om du vill ha mer information. - Du kan associera en klientegenskap med en underklass till klassen NetStream och sedan skriva en händelsehanterare för att ta emot dataobjektet. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Du kan däremot skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanteraren i en instans av underklassen.
Vänta tills en NetGroup.Neighbor.Connect
-händelse tas emot innan du använder objektreplikering, riktad routning eller publicerings-API:er.
Obs! Om du vill skicka data genom en ljudfil, som en MP3-fil, använder du klassen Sound för att associera ljudfilen med ett Sound-objekt. Använd sedan Sound.id3
-egenskapen för att läsa metadata från ljudfilen.
Stöd för H.264-kodad video i AIR for iOS
För H.264-video finns i AIR 3.0 for iOS (och senare) stöd för en delmängd av hela NetStream API. I följande tabell listas NetStream-medlemmar för uppspelning som inte stöds i AIR for iOS:
Egenskaper som inte stöds | Metoder som inte stöds | Händelser som inte stöds |
---|---|---|
bufferTime | appendBytes() | onCuePoint (endast med FLV-filer) |
bufferLength | appendBytesAction() | onImageData |
backBufferTime | step() | onSeekPoint |
backBufferLength | onTextData | |
bufferTimeMax | onXMPData | |
bytesLoaded | drmError | |
currentFPS | drmStatus | |
inBufferSeek | onDRMContentData | |
info | drmAuthenticate | |
liveDelay | DRM.encryptedFLV – statushändelsekod | |
maxPauseBufferTime | ||
soundTransform | ||
Alla egenskaper som beskriver RTMFP-anslutningar |
Mer information om AIR for iOS hittar du i NetStream.play()
-metoden.
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
audioReliable : Boolean
För RTMFP-anslutningar; anger om ljud skickas med fullständig tillförlitlighet. | NetStream | ||
audioSampleAccess : Boolean
För RTMFP-anslutningar; anger om peer-to-peer-prenumeranter i denna NetStream får lov att hämta ljudströmmen. | NetStream | ||
backBufferLength : Number [skrivskyddad]
Antal sekunder med tidigare visade data som för tillfället har cachats för tillbakaspolning och uppspelning. | NetStream | ||
backBufferTime : Number
Anger hur mycket av tidigare visade data (i sekunder) som cachas i Flash Player för tillbakaspolning och uppspelning. | NetStream | ||
bufferLength : Number [skrivskyddad]
Antalet sekunder data i bufferten. | NetStream | ||
bufferTime : Number
Anger hur länge meddelanden ska buffras innan dataströmmen börjar visas. | NetStream | ||
bufferTimeMax : Number
Anger den maximala buffertlängden (i sekunder) för direktuppspelat innehåll. | NetStream | ||
bytesLoaded : uint [skrivskyddad]
Antalet databyte som har lästs in i programmet. | NetStream | ||
bytesTotal : uint [skrivskyddad]
Det totala antal byte i filen som läses in i programmet. | NetStream | ||
checkPolicyFile : Boolean
Anger huruvida programmet ska försöka ladda ned en korsdomänprincipfil från den inlästa videofilens server innan videofilen börjar läsas in. | NetStream | ||
client : Object
Anger det objekt som återkopplingsmetoderna anropas i för att hantera direktuppspelningen eller F4V-/FLV-fildata. | NetStream | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
currentFPS : Number [skrivskyddad]
Antalet bildrutor som visas per sekund. | NetStream | ||
dataReliable : Boolean
För RTMFP-anslutningar; anger om NetStream.send()-anrop skickas med fullständig tillförlitlighet. | NetStream | ||
farID : String [skrivskyddad]
För RTMFP-anslutningar; identifieraren för den andra sidan som är ansluten till denna NetStream-instans. | NetStream | ||
farNonce : String [skrivskyddad]
För RTMFP- och RTMPE-anslutningar; ett värde som i allt väsentligt väljs av strömmens andra ände och som är unikt för den här anslutningen. | NetStream | ||
inBufferSeek : Boolean
Anger om visade data cachelagras för smart sökning (TRUE) eller inte (FALSE). | NetStream | ||
info : NetStreamInfo [skrivskyddad]
Returnerar ett NetStreamInfo-objekt vars egenskaper innehåller statistik om servicekvaliteten. | NetStream | ||
liveDelay : Number [skrivskyddad]
Antalet sekunder data i det mottagande flödets buffert i direktläge (utan buffring). | NetStream | ||
maxPauseBufferTime : Number
Anger hur länge meddelanden ska buffras i pausläget, i sekunder. | NetStream | ||
multicastAvailabilitySendToAll : Boolean
För RTMFP-anslutningar; anger om peer-to-peer-tillgänglighetsmeddelanden för multicast-fragment skickas till alla peer-datorer eller bara en. | NetStream | ||
multicastAvailabilityUpdatePeriod : Number
För RTMFP-anslutningar; anger intervall (i sekunder) mellan meddelanden som skickas till peer-datorer och talar om för dem att den lokala noden har nya tillgängliga peer-to-peer multicast-mediefragment. | NetStream | ||
multicastFetchPeriod : Number
För RTMFP-anslutningar; anger tiden (i sekunder) mellan den tidpunkt då den lokala noden får veta att ett peer-to-peer multicast-mediefragment är tillgängligt och den tidpunkt den försöker hämta det från en peer-dator. | NetStream | ||
multicastInfo : NetStreamMulticastInfo [skrivskyddad]
För RTMFP-anslutningar; returnerar ett NetStreamMulticastInfo-objekt vars egenskaper innehåller QoS-statistik (Quality of Service). | NetStream | ||
multicastPushNeighborLimit : Number
För RTMFP-anslutningar; anger maximalt antal peer-datorer till vilka multicast-media ska skickas aktivt. | NetStream | ||
multicastRelayMarginDuration : Number
För RTMFP-anslutningar; anger hur länge (i sekunder) som peer-to-peer multicast-data är tillgängliga att skickas till peer-datorer som efterfrågar dem efter en angiven längd. | NetStream | ||
multicastWindowDuration : Number
För RTMFP-anslutningar; anger hur länge (i sekunder) fönstret för peer-to-peer multicast-sammansättning visas. | NetStream | ||
nearNonce : String [skrivskyddad]
För RTMFP- och RTMPE-anslutningar; ett värde som i allt väsentligt väljs av den här änden av strömmens och som är unikt för den här anslutningen. | NetStream | ||
objectEncoding : uint [skrivskyddad]
Objektkodningen (AMF-version) för det här NetStream-objektet. | NetStream | ||
peerStreams : Array [skrivskyddad]
Ett objekt som håller alla de prenumererande NetStream-instanser som avlyssnar denna publicerande NetStream-instans. | NetStream | ||
soundTransform : flash.media:SoundTransform
Styr ljudet i det här NetStream-objektet. | NetStream | ||
time : Number [skrivskyddad]
Spelhuvudets läge i sekunder. | NetStream | ||
useHardwareDecoder : Boolean
Anger om maskinvaruaccelererad avkodning av flödet ska användas. | NetStream | ||
useJitterBuffer : Boolean
Minimera latens för obuffrad direktuppspelning live (bufferTime = 0). | NetStream | ||
videoReliable : Boolean
För RTMFP-anslutningar; anger om video skickas med fullständig tillförlitlighet. | NetStream | ||
videoSampleAccess : Boolean
För RTMFP-anslutningar; anger om peer-to-peer-prenumeranter i denna NetStream får lov att hämta videoströmmen. | NetStream | ||
videoStreamSettings : VideoStreamSettings
Ange komprimeringsegenskaper för direktuppspelning. | NetStream |
Metod | Definieras med | ||
---|---|---|---|
Skapar en direktuppspelning som du kan använda för att spela mediafiler och skicka data över ett NetConnection-objekt. | NetStream | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registrerar ett händelseavlyssnarobjekt för ett EventDispatcher-objekt så att avlyssnaren får meddelanden om händelser. | EventDispatcher | ||
Skickar en ByteArray till en NetStream för uppspelning. | NetStream | ||
Visar ett avbrott i tidsskalan, tömmer FIFO och anger för byte-tolken att ett filhuvud eller början på en FLV-tagg kan förväntas. | NetStream | ||
Kopplar en ström till ett nytt NetConnection-objekt. | NetStream | ||
Kopplar en ljudström till ett NetStream-objekt från ett Microphone-objekt som skickas som källa. | NetStream | ||
Börjar spela in video från en kamera eller slutar spela in om theCamera är inställd på null. | NetStream | ||
Avbryter all uppspelning i dataflödet, ställer in tidsegenskapen på 0 och gör dataflödet tillgänglig för annan användning. | NetStream | ||
Skickar en händelse till händelseflödet. | EventDispatcher | ||
Frisläpper alla resurser som hålls av NetStream-objektet. | NetStream | ||
Kontrollerar om EventDispatcher-objektet har några avlyssnare registrerade för en viss typ av händelse. | EventDispatcher | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anropas när en peer-publishing-ström matchar en peer-subscribing-ström. | NetStream | ||
Pausar uppspelning av ett videoflöde. | NetStream | ||
Spelar upp en mediafil från en lokal katalog eller webbserver samt spelar en mediafil eller en direktuppspelning från Flash Media Server. | NetStream | ||
Växlar mellan filer med flera bithastigheter och tillåter att ett NetStream-objekt återupptas när en anslutning avbryts och återskapas. | NetStream | ||
Extraherar alla DRM-metadata från en lokalt lagrad mediafil. | NetStream | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Skickar direktuppspelat ljud, direktuppspelad video och datameddelanden från en klient till Flash Media Server. Eventuellt registreras strömmen under överföringen. | NetStream | ||
Anger om inkommande ljud spelas upp i strömmen. | NetStream | ||
Anger om den inkommande videofilmen spelas upp i strömmen. | NetStream | ||
Anger bildrutefrekvensen för inkommande video. | NetStream | ||
Tar bort en avlyssnare från EventDispatcher-objektet. | EventDispatcher | ||
[statisk]
I AIR-program tar detta bort alla lokalt cachelagrade DRM-voucherdata (Digital Rights Management). | NetStream | ||
Återtar uppspelning av ett pausat videoflöde. | NetStream | ||
Söker efter nyckelbildrutan (kallas även en I-frame i videobranschen) som är närmast den angivna platsen. | NetStream | ||
Skickar ett meddelande i ett publicerat flöde till alla mottagande klienter. | NetStream | ||
Anger de DRM-autentiseringsuppgifter som krävs för att visa det underliggande krypterade innehållet. | NetStream | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Stegar framåt eller bakåt med angivet antal bildrutor i förhållande till den bildruta som visas. | NetStream | ||
Pausar eller fortsätter direktuppspelning. | NetStream | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object | ||
Kontrollerar om en händelseavlyssnare är registrerad för det här EventDispatcher-objektet eller något av dess överordnade objekt för den angivna händelsetypen. | EventDispatcher |
Händelse | Sammanfattning | Definieras med | ||
---|---|---|---|---|
[utsändningshändelse] Skickas när Flash Player eller AIR får operativsystemfokus och blir aktivt. | EventDispatcher | |||
Skickas om ett undantag inträffar asynkront, d.v.s. från ursprunglig asynkron kod. | NetStream | |||
[utsändningshändelse] Skickas när Flash Player eller AIR förlorar operativsystemfokus och blir inaktivt. | EventDispatcher | |||
Skickas när ett DRM-relaterat (Digital Rights Management) fel inträffar för ett NetStream-objekt som försöker spela upp DRM-krypterat innehåll som kräver användarautentisering före uppspelning. | NetStream | |||
Skickas när ett DRM-relaterat (Digital Rights Management) fel inträffar för ett NetStream-objekt som försöker spela upp en DRM-krypterad fil. | NetStream | |||
Skickas när det DRM-kodade (Digital Rights Management) innehållet börjar spelas upp (när användaren har autentiserats och är behörig att spela upp innehållet). | NetStream | |||
Skickas om ett in- eller utdatafel orsakar en misslyckad nätverksåtgärd. | NetStream | |||
Skickas när videoinnehåll spelas och när viss typ av meddelanden bearbetas. | NetStream | |||
Skickas om objektet NetStream ger ett status- eller felmeddelande. | NetStream | |||
Skapar en avlyssnare som svarar när en inbäddad referenspunkt nås vid uppspelning av en videofil. | NetStream | |||
Upprättar en avlyssnare som ska svara när AIR hämtar DRM-innehåll i form av metadata som är inbäddade i en mediafil. | NetStream | |||
Skapar en avlyssnare som svarar när Flash Player tar emot bildinformation som en bytearray, inbäddad i mediafilen som spelas upp. | NetStream | |||
Skapar en avlyssnare som svarar när den beskrivande informationen som är inbäddad i videofilen som spelas upp tas emot av Flash Player. | NetStream | |||
Skapar en avlyssnare som svarar när ett NetStream-objekt har spelat klart ett dataflöde. | NetStream | |||
Anropas synkront från appendBytes() när tolken för att lägga till byte når en punkt som identifieras som sökbar (t.ex. en videonyckelbildruta). | NetStream | |||
Skapar en avlyssnare som svarar när Flash Player tar emot textinformation som är inbäddad i en mediafil som spelas upp. | NetStream | |||
Skapar en avlyssnare som svarar när Flash Player tar emot information som är specifik för Adobe Extensible Metadata Platform (XMP) och som är inbäddad i videofilen som spelas upp. | NetStream | |||
Skickas när programmet gör ett försök att spela upp innehåll som har krypterats med DRM (Digital Rights Management), genom att anropa metoden NetStream.play(). | NetStream |
Konstant | Definieras med | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [statisk]
Ett statiskt objekt används som parameter till konstruktorn för en NetStream-instans. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [statisk]
Skapar en anslutning för peer-to-peer-publicering. | NetStream |
audioReliable | egenskap |
audioReliable:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger om ljud skickas med fullständig tillförlitlighet. När värdet är TRUE är allt ljud som skickas via denna NetStream helt tillförlitligt. När värdet är FALSE är det ljud som skickas inte helt tillförlitligt, utan skickas i stället om under en begränsad tid och tas sedan bort. Du kan använda värdet FALSE om du vill minska fördröjningen på bekostnad av ljudkvaliteten.
Om du försöker ange den här egenskapen som FALSE i ett nätverksprotokoll som saknar stöd för partiell tillförlitlighet, ignoreras försöket och egenskapen anges som TRUE.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get audioReliable():Boolean
public function set audioReliable(value:Boolean):void
Relaterade API-element
audioSampleAccess | egenskap |
audioSampleAccess:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger om peer-to-peer-prenumeranter i denna NetStream får lov att hämta ljudströmmen. När värdet är FALSE resulterar försök att hämta ljudströmmen i behörighetsfel.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get audioSampleAccess():Boolean
public function set audioSampleAccess(value:Boolean):void
Relaterade API-element
backBufferLength | egenskap |
backBufferLength:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Antal sekunder med tidigare visade data som för tillfället har cachats för tillbakaspolning och uppspelning.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Den här egenskapen är bara tillgänglig när data direktuppspelas från Flash Media Server 3.5.3 eller senare. Du hittar mer information om Flash Media Server i klassbeskrivningen.
Om du vill ange hur mycket av tidigare visade data som ska cachas använder du egenskapen Netstream.backBufferTime
.
Om du vill förhindra att data cachas anger du egenskapen Netstream.inBufferSeek
som FALSE.
Implementering
public function get backBufferLength():Number
Relaterade API-element
backBufferTime | egenskap |
backBufferTime:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Anger hur mycket av tidigare visade data (i sekunder) som cachas i Flash Player för tillbakaspolning och uppspelning. Standardvärdet är 30 sekunder för skrivbordsprogram och 3 sekunder för mobila program.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Den här egenskapen är bara tillgänglig när data direktuppspelas från Flash Media Server version 3.5.3 eller senare. Du hittar mer information om Flash Media Server i klassbeskrivningen.
Om du använder den här egenskapen förbättras prestanda för tillbakaspolning, eftersom de data som redan har visats inte behöver hämtas från servern igen. I stället börjar strömmen spelas upp från bufferten. Under uppspelningen fortsätter data att strömma från servern tills bufferten är full.
Om tillbakaspolningspositionen är längre bak än de data som finns i cacheminnet töms bufferten. Data börjar sedan att direktuppspelas från servern vid den begärda positionen.
Om du vill använda den här egenskapen anger du egenskapen Netstream.inBufferSeek
som TRUE.
Implementering
public function get backBufferTime():Number
public function set backBufferTime(value:Number):void
Relaterade API-element
bufferLength | egenskap |
bufferLength:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Antalet sekunder data i bufferten. Du kan använda den här egenskapen med egenskapen bufferTime
för att avgöra hur nära det är att bufferten är full, till exempel för att visa information för en användare som väntar på att data ska läsas in i bufferten.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get bufferLength():Number
Relaterade API-element
bufferTime | egenskap |
bufferTime:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger hur länge meddelanden ska buffras innan dataströmmen börjar visas.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Standardvärdet är 0,1 (en tiondels sekund). Avgör hur många sekunder som finns i bufferten med egenskapen bufferLength
.
Om du vill spela upp en spellista på serversidan anger du bufferTime
som minst 1 sekund. Om du får problem med uppspelningen ökar du längden på bufferTime
.
Inspelat innehåll För att undvika förvrängning vid uppspelning av redan inspelat innehåll (inte liveinnehåll) anger du inte värdet 0 för Netstream.bufferTime
. Som standard används en indatabuffert för redan inspelat innehåll där alla mediedata placeras i kö för att sedan spelas upp. För redan inspelat innehåll använder du standardinställningen eller ökar bufferttiden.
Liveinnehåll Vid direktuppspelning av liveinnehåll anger du egenskapen bufferTime
som 0.
Från och med Flash Player 9.0.115.0 rensar Flash Player inte längre bufferten när NetStream.pause()
anropas. Före Flash Player 9.0.115.0 väntade Flash Player tills bufferten var full innan uppspelningen fortsatte, vilket ofta orsakade en fördröjning.
För en enskild paus har egenskapen NetStream.bufferLength
en begränsning på antingen 60 sekunder eller två gånger värdet för NetStream.bufferTime
, beroende på vilket av värdena som är högst. Om bufferTime
exempelvis är 20 sekunder buffrar Flash Player tills NetStream.bufferLength
är det högsta värdet av antingen 20 x 2 (40) eller 60. I det här fallet buffrar det alltså tills bufferLength
är 60. Om bufferTime
är 40 sekunder buffrar Flash Player tills bufferLength
är det högsta värdet av antingen 40 x 2 (80) eller 60. I det här fallet buffrar det alltså tills bufferLength
är 80.
Egenskapen bufferLength
har också en absolut begränsning. Om ett anrop till pause()
får bufferLength
att öka till mer än 600 sekunder eller värdet för bufferTime
x 2, beroende på vilket som är högst, tömmer Flash Player bufferten och återställer bufferLength
till 0. Om bufferTime
exempelvis är 120 sekunder, tömmer Flash Player bufferten om bufferLength
blir 600 sekunder. Om bufferTime
är 360 sekunder, tömmer Flash Player bufferten om bufferLength
blir 720 sekunder.
Tips: Du kan använda NetStream.pause()
i koden om du vill buffra data samtidigt som tittarna ser på reklam, till exempel, och sedan avbryta pausen när huvudvideoklippet startas.
Mer information om den nya pausfunktionen finns i http://www.adobe.com/go/learn_fms_smartpause_se.
Flash Media Server. Hur bufferten fungerar beror på om bufferttiden är inställd på ett publiceringsflöde eller ett prenumerationsflöde. För ett publiceringsflöde anger bufferTime
hur länge den utgående bufferten kan växa innan programmet börjar tappa bildrutor. Med en snabb anslutning är bufferttiden inget problem. Data skickas nästan lika snabbt som programmet kan buffra dem. Med en långsam anslutning kan det däremot vara stor skillnad på hur snabbt programmet kan buffra data och hur snabbt data kan skickas till klienten.
För en prenumerantström anger bufferTime
hur länge inkommande data ska buffras innan strömmen ska börja visas.
Om en inspelad ström spelas upp, och bufferTime
är 0, ställs det automatiskt in på ett litet värde (ungefär 10 millisekunder). Om direktflöden spelas upp senare (till exempel från en spellista) består den bufferttiden. Det innebär att bufferTime
fortfarande inte är noll för flödet.
Implementering
public function get bufferTime():Number
public function set bufferTime(value:Number):void
Relaterade API-element
bufferTimeMax | egenskap |
bufferTimeMax:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Anger den maximala buffertlängden (i sekunder) för direktuppspelat innehåll. Standardvärdet är 0. Buffertlängden kan öka med tiden på grund av nätverks- och enhetsaktiviteter (t.ex. tidsavdrift mellan avsändare och mottagare). Ange den här egenskapen för att begränsa buffertlängden för liveprogram som möten och övervakning.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
När bufferTimeMax > 0
och bufferLength >= bufferTimeMax
spelas ljud upp snabbare tills bufferLength
når bufferTime
. Om en direktuppspelning bara innehåller video spelas videon upp snabbare tills bufferLength
når bufferTime
.
Beroende på uppspelningens eftersläpning (skillnaden mellan bufferLength
och bufferTime
) anger Flash Player hastigheten för att ”hinna ifatt” till mellan 1,5 % och 6,25 %. Om strömmen innehåller ljud kan snabbare uppspelning skapas med nedsampling i frekvensdomänen, vilket minimerar den hörbara förvrängningen.
Ange egenskapen bufferTimeMax
för att aktivera ”hinna ifatt” för buffrade liveströmmar i följande fall:
- Direktuppspelande livemedia från Flash Media Server.
- Direktuppspelande livemedia i datagenereringsläge (
NetStream.appendBytes()
).
Implementering
public function get bufferTimeMax():Number
public function set bufferTimeMax(value:Number):void
Relaterade API-element
bytesLoaded | egenskap |
bytesLoaded:uint
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Antalet databyte som har lästs in i programmet. Du kan använda den här egenskapen med egenskapen bytesTotal
för att avgöra hur nära det är att bufferten är full, till exempel för att visa information för en användare som väntar på att data ska läsas in i bufferten.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get bytesLoaded():uint
Relaterade API-element
bytesTotal | egenskap |
checkPolicyFile | egenskap |
checkPolicyFile:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Anger huruvida programmet ska försöka ladda ned en korsdomänprincipfil från den inlästa videofilens server innan videofilen börjar läsas in. Använd den här egenskapen för progressiv videohämtning och för att läsa in filer som finns utanför den anropande SWF-filens egen domän. Den här egenskapen ignoreras när du använder RTMP.
Ange den här egenskapen som true
för att anropa BitmapData.draw()
på en videofil som lästs in från en domän utanför den anropande SWF-filens domän. Metoden BitmapData.draw()
ger tillgång till videon på pixelnivå. Om du anropar BitmapData.draw()
utan att ange egenskapen checkPolicyFile
som true
vid inläsningen kan ett SecurityError
-fel uppstå, eftersom den nödvändiga principfilen inte hämtades.
Ange inte den här egenskapen som true om du inte vill ha tillgång till videon på pixelnivå. Vid sökning efter en principfil krävs bandbredd och det kan fördröja starten på hämtningen.
När du anropar metoden NetStream.play()
med checkPolicyFile
inställt på true
måste Flash Player eller AIR-miljön antingen slutföra hämtningen av en relevant korsdomänprincipfil eller konstatera att filen inte finns, innan hämtningen påbörjas. För att kontrollera om principfilen finns utförs följande åtgärder i Flash Player eller AIR-körningen, i den här ordningen:
- Programmet jämför de principfiler som redan har laddats ned.
- Programmet försöker ladda ned eventuella väntande principfiler som finns angivna i anrop till metoden
Security.loadPolicyFile()
. - Programmet försöker ladda ned en principfil från standardplatsen som motsvarar den URL-adress du skickade till
NetStream.play()
, som är/crossdomain.xml
på samma server som URL:en.
I samtliga fall kräver Flash Player eller Adobe AIR att den korrekta principfilen finns på servern med videoklippet, att den ger åtkomst till objektet på den URL du skickade till play()
baserat på principfilens plats samt att den ger den anropande filens domän åtkomst till videoklippet via en eller flera <allow-access-from>
-taggar.
Om du anger checkPolicyFile
till true
väntar programmet tills principfilen har verifierats innan videoklippet laddas ned. Vänta med att utföra några åtgärder på pixelnivå i dina videodata, t.ex. anropa BitmapData.draw()
, innan du tagit emot händelserna onMetaData
eller NetStatus
från NetStream-objektet.
Om du anger checkPolicyFile
till true
utan att någon relevant principfil hittas visas inget felmeddelande förrän du utför en åtgärd som kräver en principfil; då genereras ett SecurityError-undantag.
Var försiktig med checkPolicyFile
om du laddar ned en fil från en URL där HTTP-omdirigeringar på serversidan kanske används. Programmet försöker hämta principfiler som motsvarar den ursprungliga webbadress som du anger i NetStream.play()
. Om den slutliga filen kommer från en annan webbadress på grund av HTTP-omdirigeringar kanske de ursprungligen nedladdade principfilerna inte gäller för filens slutliga webbadress, det vill säga den webbadress som gäller ur säkerhetssynpunkt.
Du hittar mer information om principfiler i avsnittet ”Webbplatsinställningar (principfiler)” i Utvecklarhandbok för Adobe ActionScript 3.0 och i avsnittet Security på Flash Player Developer Center.
Implementering
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
Relaterade API-element
client | egenskap |
client:Object
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger det objekt som återkopplingsmetoderna anropas i för att hantera direktuppspelningen eller F4V-/FLV-fildata. Standardobjektet är this
, det NetStream-objekt som skapas. Om du anger egenskapen client
som ett annat objekt anropas återanropsmetoder för det andra objektet. NetStream.client
-objektet kan anropa följande funktioner och ta emot ett associerat dataobjekt: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onSeekPoint()
, onTextData()
och onXMPData()
.
Så här associerar du client
-egenskapen med en händelsehanterare:
- Skapa ett objekt och tilldela det till
client
-egenskapen för NetStream-objektet:var customClient:Object = new Object(); my_netstream.client = customClient;
- Tilldela en hanterarfunktion för önskad datahändelse som en egenskap för klientobjektet:
customClient.onImageData = onImageDataHandler;
- Skriv en hanterarfunktion för att ta emot datahändelseobjektet:
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
När data överförs via dataflödet eller under en uppspelning fylls datahändelseobjektet (i det här fallet imageData
-objektet) på med data. Se beskrivningen av onImageData
som innehåller exempel på ett objekt som har tilldelats client
-egenskapen.
Så här associerar du client
-egenskapen med en underklass:
- Skapa en underklass med en hanterarfunktion för att ta emot datahändelseobjektet:
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
- Tilldela en instans av underklassen till
client
-egenskapen för NetStream-objektet:my_netstream.client = new CustomClient();
När data överförs via dataflödet eller under en uppspelning fylls datahändelseobjektet (i det här fallet info
-objektet) på med data. Se klassexemplet i slutet av klassen NetStream som visar tilldelningen av en underklassinstans till enclient
-egenskap.
Implementering
public function get client():Object
public function set client(value:Object):void
Utlöser
TypeError — Egenskapen client måste vara angiven som ett icke-nullobjekt.
|
Relaterade API-element
currentFPS | egenskap |
currentFPS:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Antalet bildrutor som visas per sekund. Om du exporterar videofiler som ska spelas upp på flera olika system kan du kontrollera det här värdet under testningen för att avgöra hur mycket komprimering som behövs när filen exporteras.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get currentFPS():Number
dataReliable | egenskap |
dataReliable:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger om NetStream.send()
-anrop skickas med fullständig tillförlitlighet. När värdet är TRUE är NetStream.send()
-anrop som skickas via denna NetStream helt tillförlitliga. När värdet är FALSE skickas NetStream.send()
-anrop inte med fullständig tillförlitlighet, utan skickas i stället om under en begränsad tid och tas sedan bort. Du kan använda värdet FALSE om du vill minska fördröjningen på bekostnad av datakvaliteten.
Om du försöker ange den här egenskapen som FALSE i ett nätverksprotokoll som saknar stöd för partiell tillförlitlighet, ignoreras försöket och egenskapen anges som TRUE.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get dataReliable():Boolean
public function set dataReliable(value:Boolean):void
Relaterade API-element
farID | egenskap |
farID:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
För RTMFP-anslutningar; identifieraren för den andra sidan som är ansluten till denna NetStream-instans.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get farID():String
farNonce | egenskap |
farNonce:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
För RTMFP- och RTMPE-anslutningar; ett värde som i allt väsentligt väljs av strömmens andra ände och som är unikt för den här anslutningen. Det här värdet visas för den andra sidan av strömmen som dess nearNonce
-värde.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get farNonce():String
inBufferSeek | egenskap |
inBufferSeek:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Anger om visade data cachelagras för smart sökning (TRUE
) eller inte (FALSE
). Standardvärdet är FALSE.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Flash Media Server 3.5.3 och Flash Player 10.1 samverkar för att ge stöd för smart sökning. Smart sökning använder bakåt- och framåtbuffertar för att söka utan att begära data från servern. Standardsökning tömmer buffrade data och begär nya data från servern baserat på söktiden.
Anropa NetStream.step()
om du vill stega framåt och bakåt med ett visst antal bildrutor. Anropa NetStream.seek()
om du vill söka framåt och bakåt med ett visst antal sekunder.
Smart sökning minskar belastningen på servern och förbättrar sökningsprestanda. Ange inBufferSeek=true
och anropa step()
och seek()
för att skapa:
- DVR-funktioner på klientsidan. Sök i bufferten på klientsidan i stället för att hämta ny video på servern.
- Tricklägen. Skapa spelare som stegar genom bildrutor, snabbspolar framåt och bakåt och går framåt långsamt.
När inBufferSeek=true
och ett anrop till NetStream.seek()
lyckas innehåller NetStatusEvent-egenskapen info.description
strängen "client-inBufferSeek"
.
När ett anrop till NetStream.step()
lyckas innehåller egenskapen info.code
för NetStatusEvent strängen "NetStream.Step.Notify"
.
Implementering
public function get inBufferSeek():Boolean
public function set inBufferSeek(value:Boolean):void
Relaterade API-element
info | egenskap |
info:NetStreamInfo
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Returnerar ett NetStreamInfo-objekt vars egenskaper innehåller statistik om servicekvaliteten. Objektet är en ögonblicksbild av den aktuella statusen.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get info():NetStreamInfo
Relaterade API-element
liveDelay | egenskap |
liveDelay:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Antalet sekunder data i det mottagande flödets buffert i direktläge (utan buffring). Med den här egenskapen anges aktuell fördröjning i nätverksöverföringen.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Den här egenskapen är främst avsedd för användning med en server, t.ex. Flash Media Server. Mer information finns i klassbeskrivningen.
Du kan hämta värdet för egenskapen och göra en grov bedömning av överföringskvaliteten för dataflödet och informera användaren.
Implementering
public function get liveDelay():Number
maxPauseBufferTime | egenskap |
maxPauseBufferTime:Number
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anger hur länge meddelanden ska buffras i pausläget, i sekunder. Den här egenskapen kan användas för att begränsa hur mycket buffring som görs i pausläget. När värdet på NetStream.bufferLength
når den här gränsen stoppas buffringen.
Om värdet inte är inställt är det som standard satt till det högsta värdet av antingen 60 sekunder eller dubbla värdet på NetStream.bufferTime
vid varje paus.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get maxPauseBufferTime():Number
public function set maxPauseBufferTime(value:Number):void
Relaterade API-element
multicastAvailabilitySendToAll | egenskap |
multicastAvailabilitySendToAll:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger om peer-to-peer-tillgänglighetsmeddelanden för multicast-fragment skickas till alla peer-datorer eller bara en. Värdet TRUE anger att meddelandet skickas till alla peer-datorer en gång per angivet intervall. Värdet FALSE anger att meddelandet bara skickas till en peer-dator per angivet intervall. Intervallet anges av egenskapen multicastAvailabilityUpdatePeriod
.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastAvailabilitySendToAll():Boolean
public function set multicastAvailabilitySendToAll(value:Boolean):void
Relaterade API-element
multicastAvailabilityUpdatePeriod | egenskap |
multicastAvailabilityUpdatePeriod:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger intervall (i sekunder) mellan meddelanden som skickas till peer-datorer och talar om för dem att den lokala noden har nya tillgängliga peer-to-peer multicast-mediefragment. Större värden kan öka effektiviteten och minska publiceringskontrollinformationen (pålägg), men kan även sänka kvaliteten i mottagaränden genom att den tid under vilken fragment kan hämtas förkortas. Lägre värden kan minska fördröjningen och förbättra kvaliteten, men ökar i stället publiceringskontrollinformationen (pålägg).
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastAvailabilityUpdatePeriod():Number
public function set multicastAvailabilityUpdatePeriod(value:Number):void
Relaterade API-element
multicastFetchPeriod | egenskap |
multicastFetchPeriod:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger tiden (i sekunder) mellan den tidpunkt då den lokala noden får veta att ett peer-to-peer multicast-mediefragment är tillgängligt och den tidpunkt den försöker hämta det från en peer-dator. Det här värdet gör det möjligt för fragmentet att aktivt skickas till den lokala noden innan ett hämtningsförsök av en peer-dator sker. Det medger även att fler än en peer-dator annonserar fragmentets tillgänglighet, så att hämtningslasten kan fördelas på flera peer-datorer.
Större värden kan förbättra belastningsutjämningen och ”rättvisan” i P2P-nätet, men minska tillgänglig multicastWindowDuration
och öka fördröjningen. Mindre värden kan minska fördröjningen vid hämtning, men kan i stället öka risken för mottagning av dubblerade data och minska belastningsutjämningen i P2P-nätet.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastFetchPeriod():Number
public function set multicastFetchPeriod(value:Number):void
Relaterade API-element
multicastInfo | egenskap |
multicastInfo:NetStreamMulticastInfo
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; returnerar ett NetStreamMulticastInfo-objekt vars egenskaper innehåller QoS-statistik (Quality of Service). Objektet är en ögonblicksbild av den aktuella statusen.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastInfo():NetStreamMulticastInfo
Relaterade API-element
multicastPushNeighborLimit | egenskap |
multicastPushNeighborLimit:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger maximalt antal peer-datorer till vilka multicast-media ska skickas aktivt.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastPushNeighborLimit():Number
public function set multicastPushNeighborLimit(value:Number):void
multicastRelayMarginDuration | egenskap |
multicastRelayMarginDuration:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger hur länge (i sekunder) som peer-to-peer multicast-data är tillgängliga att skickas till peer-datorer som efterfrågar dem efter en angiven längd. Längden anges av egenskapen multicastWindowDuration
.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastRelayMarginDuration():Number
public function set multicastRelayMarginDuration(value:Number):void
Relaterade API-element
multicastWindowDuration | egenskap |
multicastWindowDuration:Number
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger hur länge (i sekunder) fönstret för peer-to-peer multicast-sammansättning visas. Kortare värden minskar fördröjningen, men kan försämra kvaliteten eftersom det inte finns tillräckligt med tid att hämta alla fragment. Omvänt kan stora värden öka kvaliteten eftersom det finns tid att hämta alla fragment, men en ökad fördröjning kan då uppstå.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get multicastWindowDuration():Number
public function set multicastWindowDuration(value:Number):void
Relaterade API-element
nearNonce | egenskap |
nearNonce:String
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
För RTMFP- och RTMPE-anslutningar; ett värde som i allt väsentligt väljs av den här änden av strömmens och som är unikt för den här anslutningen. Det här värdet visas för den andra sidan av strömmen som dess farNonce
-värde.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get nearNonce():String
objectEncoding | egenskap |
objectEncoding:uint
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Objektkodningen (AMF-version) för det här NetStream-objektet. NetStream-objektet ärver värdet objectEncoding
från associerat NetConnection-objekt. Du behöver veta hur egenskapen används om SWF-filen i ActionSCript 3.0 ska kommunicera med servrar med tidigare versioner än Flash Player 9. Mer information finns i egenskapsbeskrivningen för objectEncoding
i NetConnection-klassen.
Värdet för denna egenskap beror på om dataflödet är lokalt eller externt. I lokala strömmar där null
skickas till metoden NetConnection.connect()
returneras värdet NetConnection.defaultObjectEncoding
. I externa dataflöden, via anslutning till en server, returneras objektkoden för anslutningen till servern.
Om du försöker läsa den här egenskapen utan upprättad anslutning, eller om du försöker ändra egenskapen, genereras ett undantag i programmet.
Implementering
public function get objectEncoding():uint
Relaterade API-element
peerStreams | egenskap |
soundTransform | egenskap |
soundTransform:flash.media:SoundTransform
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Styr ljudet i det här NetStream-objektet. Mer information finns i klassen SoundTransform.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Relaterade API-element
time | egenskap |
time:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spelhuvudets läge i sekunder.
Flash Media Server Det antal sekunder av flödet som har spelats upp för ett prenumerationsflöde. Det antal sekunder av flödet som har publicerats för ett publiceringsflöde. Talets noggrannhet är fyra decimaler. Multiplicera värdet med 1000 om du vill ha antalet millisekunder som flödet har spelats upp.
Om servern slutar skicka data för ett prenumerationsflöde men flödet fortfarande är öppet slutar värdet för time
att öka. När servern börjar skicka data igen fortsätter värdet att öka från den punkt det stoppades (när servern slutade att skicka data).
Värdet för time
fortsätter öka när strömmen växlar från ett spellisteelement till ett annat. Egenskapen ställs in på 0 när NetStream.play()
anropas med reset
inställt på 1
eller true
, eller när NetStream.close()
anropas.
Implementering
public function get time():Number
Relaterade API-element
useHardwareDecoder | egenskap |
useHardwareDecoder:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 3 |
Anger om maskinvaruaccelererad avkodning av flödet ska användas.
Obs! Du kan inte ställa in den här egenskapen under videouppspelning. Du måste ställa in den innan du anropar NetStream.play()
.
Standardvärdet är true.
Implementering
public function get useHardwareDecoder():Boolean
public function set useHardwareDecoder(value:Boolean):void
Relaterade API-element
useJitterBuffer | egenskap |
useJitterBuffer:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11.3, AIR 3.3 |
Minimera latens för obuffrad direktuppspelning live (bufferTime = 0). I stället för en konservativ push-baserad catchup-funktion placeras ljudmeddelanden i en adaptiv jitterbuffert. När ljud begärs av en högtalarenhet hämtas meddelanden från jitterbufferten, varefter de avkodas och spelas upp. Speex och G.711 använder alltid den här pull-baserade metoden, oavsett den här inställningen (useJitterBuffer returnerar true för Speex/G.711). Om det aktiveras i obuffrat läge använder alla kodekar jitterbuffert, t.ex. Speex, G.711, Nellymoser, MP3 och AAC. Den här egenskapen har ingen effekt i buffrat läge (bufferTime > 0), och useJitterBuffer returnerar därför false.
Implementering
public function get useJitterBuffer():Boolean
public function set useJitterBuffer(value:Boolean):void
videoReliable | egenskap |
videoReliable:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger om video skickas med fullständig tillförlitlighet. När värdet är TRUE är all video som skickas via denna NetStream helt tillförlitlig. När värdet är FALSE är den video som skickas inte helt tillförlitlig, utan skickas i stället om under en begränsad tid och tas sedan bort. Du kan använda värdet FALSE om du vill minska fördröjningen på bekostnad av videokvaliteten.
Om du försöker ange den här egenskapen som FALSE i ett nätverksprotokoll som saknar stöd för partiell tillförlitlighet, ignoreras försöket och egenskapen anges som TRUE.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get videoReliable():Boolean
public function set videoReliable(value:Boolean):void
Relaterade API-element
videoSampleAccess | egenskap |
videoSampleAccess:Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
För RTMFP-anslutningar; anger om peer-to-peer-prenumeranter i denna NetStream får lov att hämta videoströmmen. När värdet är FALSE resulterar försök att hämta videoströmmen i behörighetsfel.
Obs! Denna egenskap stöds inte för H.264-video i AIR 3.0 for iOS.
Implementering
public function get videoSampleAccess():Boolean
public function set videoSampleAccess(value:Boolean):void
Relaterade API-element
videoStreamSettings | egenskap |
videoStreamSettings:VideoStreamSettings
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11/ConnectAddin, AIR 3 |
Ange komprimeringsegenskaper för direktuppspelning. Mer information finns i VideoStreamSettings
. Null returneras när inga kameror är kopplade till systemet.
Implementering
public function get videoStreamSettings():VideoStreamSettings
public function set videoStreamSettings(value:VideoStreamSettings):void
Relaterade API-element
NetStream | () | Konstruktor |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar en direktuppspelning som du kan använda för att spela mediafiler och skicka data över ett NetConnection-objekt.
Det betraktas som ogiltigt för hantering av ett NetStream-objekts netStatus
-händelse. För att undvika fel ska du registrera en avlyssnare för netStatus
sedan du skapat NetStream-objektet och innan du anropar dess play()-
-metod.
connection:NetConnection — Ett NetConnection-objekt.
| |
peerID:String (default = "connectToFMS ") — Den här valfria parametern finns i Flash Player 10 och senare versioner för användning med RTMFP-anslutningar. (Om värdet på egenskapen NetConnection.protocol inte är "rtmfp" ignoreras den här parametern.) Använd något av följande värden:
I de flesta fall kan Om du inkluderar den här parametern i konstruktorsatsen, men skickar värdet |
Utlöser
ArgumentError — NetConnection-instansen är inte ansluten.
|
Relaterade API-element
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"
Exempel ( Så här använder du exemplet )
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
) på en fjärrinstans av Flash Media Server som anges i connect()
-kommandot:
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 | () | metod |
public function appendBytes(bytes:ByteArray):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Skickar en ByteArray till en NetStream för uppspelning. Anropa den här metoden på en NetStream i datagenereringsläge. Om du vill försätta en NetStream i datagenereringsläge anropar du NetStream.play(null)
på en NetStream som skapats på en NetConnection som är ansluten till null
. Om du anropar appendBytes()
på en NetStream som inte är i datagenereringsläge skapas ett undantagsfel.
Obs! Denna metod stöds inte för H.264-video i AIR 3.0 for iOS.
Byte-tolken kan hantera en FLV-fil med ett huvud. När filhuvudet har tolkats förutsätter appendBytes()
att alla framtida anrop är fortsättningar på samma verkliga eller virtuella fil. Inga fler filhuvuden förväntas om inte appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
anropas.
Ett NetStream-objekt har två buffertar, FIFO från appendBytes()
till NetStream och uppspelningsbufferten. FIFO är sammansättningsbufferten för ej kompletta FLV-taggar och den innehåller inget mer än en ofullständig FLV-tagg. Anrop till NetStream.seek()
tömmer båda bufferterna. Efter ett anrop till seek()
, anropar du appendBytesAction()
för att återställa tidsskalan till början av tidsstämpeln för nästa tillagda meddelande.
Varje anrop till appendBytes()
lägger till byte i FIFO tills en FLV-tagg har slutförts. När en FLV-tagg har slutförts flyttas den till uppspelningsbufferten. Ett anrop till appendBytes()
kan skriva över flera FLV-taggar. De första byten slutför en befintlig FLV-tagg (som flyttas till uppspelningsbufferten). Slutförda FLV-taggar flyttas till uppspelningsbufferten. Återstående byte som inte utgör en komplett FLV-tagg läggs i FIFO. Byte i FIFO är antingen slutförda genom ett anrop till appendBytes()
eller tömda genom ett anrop till appendBytesAction()
med argumentet RESET_SEEK
eller RESET_BEGIN
.
Obs! Byte-tolken kanske inte fullständigt kan avkoda ett anrop till appendBytes()
förrän ett efterföljande anrop till appendBytes()
görs.
Parametrar
bytes:ByteArray |
Relaterade API-element
appendBytesAction | () | metod |
public function appendBytesAction(netStreamAppendBytesAction:String):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Visar ett avbrott i tidsskalan, tömmer FIFO och anger för byte-tolken att ett filhuvud eller början på en FLV-tagg kan förväntas.
Obs! Denna metod stöds inte för H.264-video i AIR 3.0 for iOS.
Anropar NetStream.seek()
för att tömma NetStream-bufferten. Byte-tolken behåller tömningsläget tills du anropar appendBytesAction()
och skickar argumentet RESET_BEGIN
eller RESET_SEEK
. Hämtar händelsen "NetStream.Seek.Notify"
för att anropa appendBytesAction()
efter en sökning. Ett nytt filhuvud kan ha stöd för spellistor eller sökning utan anrop till NetStream.seek()
.
Du kan även anropa den här metoden för att återställa byte-räknaren för onSeekPoint()
)-återkoppling.
Parametrar
netStreamAppendBytesAction:String |
Relaterade API-element
attach | () | metod |
public function attach(connection:NetConnection):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Kopplar en ström till ett nytt NetConnection-objekt. Anropa den här metoden för att koppla en NetStream till ett nytt NetConnection-objekt när en anslutning har kopplats ned och återanslutits. Flash Player och AIR återupptar direktuppspelningen från den uppspelningspunkt där anslutningen bröts. Du kan också använda den här metoden för att implementera belastningsutjämning.
Den här metoden kräver Flash Media Server version 3.5.3 eller senare.
Om du vill använda den här metoden för att implementera återanslutning av strömmar läser du dokumentationen till Flash Media Server 3.5.3.
Om du vill använda den här metoden för belastningsutjämning gör du så här:
- Koppla en ansluten ström till ett NetConnection-objekt på en annan server.
- När strömmen har kopplats till den nya anslutningen anropar du
NetConnection.close()
på den tidigare anslutningen för att förhindra dataläckage. - Anropa
NetStream.play2()
och ange värdet påNetStreamPlayOptions.transition
som RESUME. Ange resten av egenskaperna för NetStreamPlayOptions till samma värden som du använde när du ursprungligen anropadeNetStream.play()
ellerNetStream.play2()
för att starta strömmen.
Parametrar
connection:NetConnection |
Relaterade API-element
attachAudio | () | metod |
public function attachAudio(microphone:Microphone):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Kopplar en ljudström till ett NetStream-objekt från ett Microphone-objekt som skickas som källa. Den här metoden är bara tillgänglig för utgivaren av den angivna strömmen.
Använd den här metoden med Flash Media Server för att skicka liveljud till servern. Anropa den här metoden före eller efter anropet till metoden publish()
.
Ställ in egenskapen Microphone.rate
så att den överensstämmer med frekvensen för ljudinspelningsenheten. Anropa setSilenceLevel()
för att ställa in tröskelvärdet för tystnadsnivån. Om du vill kontrollera ljudegenskaperna (volym och panorering) för ljuduppspelningen ska du använda egenskapen 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")
Om du vill höra ljudet anropar du metoden NetStream.play()
och DisplayObjectContainer.addChild()
för att dirigera ljudet till ett objekt på visningslistan.
Parametrar
microphone:Microphone — Källan till den ljudström som ska överföras.
|
Relaterade API-element
attachCamera | () | metod |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Börjar spela in video från en kamera eller slutar spela in om theCamera
är inställd på null
. Den här metoden är bara tillgänglig för utgivaren av den angivna strömmen.
Den här metoden är avsedd för användning med Flash Media Server. Mer information finns i klassbeskrivningen.
När du har bifogat videokällan måste du anropa NetStream.publish()
för att starta överföringen. Prenumeranter som vill visa videoklippet måste anropa metoderna NetStream.play()
och Video.attachCamera()
för att visa videoklippet på scenen.
Du kan använda snapshotMilliseconds
för att skicka en enda ögonblicksbild (genom att ange värdet 0) eller en serie med ögonblicksbilder – fotografering i tidsintervaller – genom att ange ett positivt tal så att en bipost med angivet antal millisekunder läggs till videomatningen. Biposten utökar videomeddelandets visningstid. Med hjälp av upprepade anrop till attachCamera()
med ett positivt värde för snapshotMilliseconds
skapas fotografering i tidsintervaller av sekvensen med växelvisa ögonblicksbilder och biposter. Du kan till exempel hämta en bildruta per dag och lägga till den till en videofil. När en prenumerant spelar upp filen visas varje bildruta på skärmen i angivet antal millisekunder.
Syftet med parametern snapshotMilliseconds
skiljer sig från parametern fps
som du kan ange med Camera.setMode()
. När du anger snapshotMilliseconds
kan du bestämma ett tidsintervall mellan inspelade bildrutor. När du definierar fps
med hjälp av Camera.setMode()
anger du hur mycket tid som ska förflyta under inspelning och uppspelning.
Anta till exempel att du vill ta en ögonblicksbild var femte minut med totalt 100 ögonblicksbilder. Detta kan göras på två sätt:
- Du kan använda kommandot
NetStream.attachCamera(myCamera, 500)
100 gånger, en gång var femte minut. Detta tar 500 minuter att spela in, men resultatfilen tar 50 sekunder att spelas upp (100 bildrutor med 500 millisekunder mellan varje). - Du kan använda kommandot
Camera.setMode()
med värdetfps
inställt med 1/300 (en per 300 sekunder eller 1 var femte minut) och sedan använda kommandotNetStream.attachCamera(source)
som låter kameran hämta oavbrutet under 500 minuter. Resultatfilen spelas upp på 500 minuter – samma tid det tog att spela in – där varje bildruta visas i fem minuter.
Båda teknikerna hämtar samma 500 bildrutor och båda metoderna är användbara. Vilken metod du väljer beror främst på vilken uppspelning som krävs. I det andra fallet kanske du spelar in ljud hela tiden. Båda filerna blir ungefär lika stora.
Parametrar
theCamera:Camera — Källan till videoöverföringen. Giltiga värden är ett Camera-objekt (som börjar hämta videoklipp) och null . Om du skickar null slutar programmet att hämta videofilen och alla ytterligare parametrar du skickar ignoreras.
| |
snapshotMilliseconds:int (default = -1 ) — Anger om videoflödet är kontinuerligt, en enda bildruta eller en serie med enstaka bildrutor som används till att skapa fotografering i tidsintervaller.
|
close | () | metod |
public function close():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Avbryter all uppspelning i dataflödet, ställer in egenskapen time
på 0 och gör dataflödet tillgängligt för annan användning. Den här metoden tar också bort den lokala kopian av en videofil som laddades ned med HTTP. Även om programmet tar bort den lokala kopian av filen som skapas, kan det finnas kvar en kopia i cachekatalogen. Om du behöver förhindra att videofilen lagras i cacheminnet eller lokalt använder du Flash Media Server.
När du använder Flash Media Server anropas den här metoden implicit när du anropar NetStream.play()
från ett publiceringsflöde eller NetStream.publish()
från ett prenumerationsflöde. Observera:
-
Om
close()
anropas från ett publiceringsflöde upphör publiceringen och utgivaren kan använda dataflödet för andra syften. Prenumeranten tar inte längre emot något som publicerades i dataflödet eftersom det inte längre publiceras. -
Om
close()
anropas från ett prenumerationsflöde upphör flödet för prenumeranten och denne kan använda dataflödet för andra syften. Andra prenumeranter påverkas inte. -
Du kan stoppa uppspelningen av ett prenumerationsflöde utan att stänga dataflödet eller ändra flödestypen genom att använda
flash.net.NetStream.play(false)
.
Relaterade API-element
dispose | () | metod |
public function dispose():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 11, AIR 3.0 |
Frisläpper alla resurser som hålls av NetStream-objektet.
Metoden dispose()
liknar metoden close
. Den huvudsakliga skillnaden mellan de båda metoderna är att dispose()
frisläpper det minne som används för att visa den aktuella videobildrutan. Om den bildrutan just då visas på skärmen blir skärmen tom. Metoden close()
visar inte en tom skärm, eftersom den inte frisläpper det här minnet.
onPeerConnect | () | metod |
public function onPeerConnect(subscriber:NetStream):Boolean
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Anropas när en peer-publishing-ström matchar en peer-subscribing-ström. Innan prenumeranten kopplas upp till utgivaren anropas den här metoden för att låta ActionScript-koden finjustera åtkomststyrning för peer-to-peer-publicering. Följande kod visar ett exempel på hur en callback-funktion skapas för den här metoden:
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Om en peer-publicerare inte implementerar den här metoden kan alla peers spela upp allt publicerat innehåll.
Parametrar
subscriber:NetStream |
Boolean |
pause | () | metod |
public function pause():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pausar uppspelning av ett videoflöde. Om du anropar denna metod när videoklippet redan är pausat händer ingenting. Om du vill återta videouppspelningen efter en paus anropar du resume()
. Om du vill växla mellan paus och uppspelning (först pausa videon och sedan återta uppspelning) anropar du togglePause()
.
Från och med Flash Player 9.0.115.0 rensar Flash Player inte längre bufferten när NetStream.pause()
anropas. Beteendet kallas ”smart paus”. Före Flash Player 9.0.115.0 väntade Flash Player tills bufferten var full innan uppspelningen fortsatte, vilket ofta orsakade en fördröjning.
Obs! För bakåtkompatibilitet skickas "NetStream.Buffer.Flush"
-händelsen ändå (se egenskapen NetStatusEvent.info
), men servern tömmer inte bufferten.
För en enskild paus har egenskapen NetStream.bufferLength
en begränsning på antingen 60 sekunder eller två gånger värdet för NetStream.bufferTime
, beroende på vilket av värdena som är högst. Om bufferTime
exempelvis är 20 sekunder buffrar Flash Player tills NetStream.bufferLength
är det högsta värdet av antingen 20 x 2 (40) eller 60. I det här fallet buffrar det alltså tills bufferLength
är 60. Om bufferTime
är 40 sekunder buffrar Flash Player tills bufferLength
är det högsta värdet av antingen 40 x 2 (80) eller 60. I det här fallet buffrar det alltså tills bufferLength
är 80.
Egenskapen bufferLength
har också en absolut begränsning. Om ett anrop till pause()
får bufferLength
att öka till mer än 600 sekunder eller värdet för bufferTime
x 2, beroende på vilket som är högst, tömmer Flash Player bufferten och återställer bufferLength
till 0. Om bufferTime
exempelvis är 120 sekunder, tömmer Flash Player bufferten om bufferLength
blir 600 sekunder. Om bufferTime
är 360 sekunder, tömmer Flash Player bufferten om bufferLength
blir 720 sekunder.
Tips: Du kan använda NetStream.pause()
i koden om du vill buffra data samtidigt som tittarna ser på reklam, till exempel, och sedan avbryta pausen när huvudvideoklippet startas.
Relaterade API-element
play | () | metod |
public function play(... arguments):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spelar upp en mediafil från en lokal katalog eller webbserver samt spelar en mediafil eller en direktuppspelning från Flash Media Server. Skickar ett NetStatusEvent
-objekt till rapportstatus och felmeddelanden.
Information om vilka kodekar och filformat som stöds finns på:
- Flash Media Server documentation
- Exploring Flash Player support for high-definition H.264 video and AAC audio
- FLV/F4V open specification documents
Arbetsflöde för att spela upp en fil eller för direktuppspelning
- Skapa ett Video-objekt som visar videon och anropa
addChild()
för att lägga till den på scenen. Skapa ett NetConnection-objekt och anropa
NetConnection.connect()
.Skicka null om du vill spela upp en fil från en lokal katalog eller webbserver.
Om du vill spela upp en inspelad fil eller en direktuppspelning från Flash Media Server, skickar du URI-adresen för ett Flash Media Server-program.
- Anropa NetConnection-objektets
addEventListener()
-metod för att lyssna efternetStatus
-händelsen (NetStatusEvent.NET_STATUS
). - Skapa ett NetStream-objekt och skicka NetConnection-objektet till konstruktorn vid
"NetConnection.Connect.Success"
. - Anropa Video-objektets
attachNetStream()
-metod och skicka NetStream-objektet. Anropa NetStream-objektets
play()
-metod.Om du vill spela upp en direktuppspelning skickar du namnet på direktuppspelningen till metoden
NetStream.publish()
.Om du vill spela upp en inspelad fil skickar du filnamnet.
Obs! Du bör alltid lägga till Video-objektet på scenen, koppla NetStream till det och sedan anropa NetStream-objektets play()
-metod.
Aktivera datagenereringsläge
Anropa play(null)
för att aktivera datagenereringsläget. I det här läget anropar du metoden appendBytes()
för att skicka data till NetStream. Använd datagenereringsläge för att direktuppspela innehåll via HTTP från Adobe HTTP Dynamic Streaming Origin Module på en Apache HTTP-server. Med dynamisk HTTP-direktuppspelning kan klienter snabbt söka upp olika punkter i en fil. OSMF (Open Source Media Framework) har stöd för dynamisk HTTP-direktuppspelning för vod- och liveströmmar. Om du vill se exempel på hur du använder datagenereringsläget för NetStream hämtar du OSMF-källan. Mer information om dynamisk HTTP-direktuppspelning finns i Dynamisk HTTP-direktuppspelning.
När du använder den här metoden utan Flash Media Server måste du ta med vissa säkerhetsaspekter i beräkningen. En fil i sandlådan lokal-tillförlitlig eller lokal-med-nätverk kan läsa in och spela upp en videofil från fjärransluten sandlåda, men har ingen åtkomst till data i den externa filen förutan särskild behörighet genom en URL-principfil. Du kan också förhindra att en SWF-fil som körs i Flash Player använder den här metoden genom att ange parametern allowNetworking
för object
- och embed
-taggarna på HTML-sidan med SWF-innehållet. Mer information om säkerhet finns i avsnittet Security på Flash Player Developer Center.
Parametrar
... arguments — Spela upp en lokal fil
Platsen för en mediefil. Argumentet kan vara en String, en Spela upp en fil från Flash Media Server
Du kan spela upp de filformat som beskrivs i följande tabell. Syntaxen varierar beroende på filformatet.
Aktivera datagenereringsläge
Om du vill aktivera datagenereringsläge skickar du värdet Speciella överväganden för H.264-video i AIR 3.0 for iOS För H.264-video accepteras för iOS API:er för videouppspelning endast en webbadress till en fil eller ett flöde. Du kan inte ange en buffert med H264-videodata som ska avkodas. Beroende på vilken videokälla du använder, anger du lämpligt argument för
|
Händelser
status: — Skickas vid försök att spela upp DRM-krypterat innehåll (Digital Rights Management). Värdet på egenskapen code är "DRM.encryptedFLV" .
|
Utlöser
SecurityError — Lokala otillförlitliga SWF-filer kan inte kommunicera med webben. Du kan undvika restriktionen genom att omklassificera SWF-filen som lokal med nätverkstjänst eller tillförlitlig.
| |
ArgumentError — Du måste ange minst en parameter.
| |
Error — NetStream-objektet är ogiltigt. Det kan bero på en misslyckad NetConnection.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
play()
ange ett filnamnstillägg.
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 | () | metod |
public function play2(param:NetStreamPlayOptions):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Växlar mellan filer med flera bithastigheter och tillåter att ett NetStream-objekt återupptas när en anslutning avbryts och återskapas.
Den här metoden är en förbättrad version av NetStream.play()
. Precis som metoden play()
, börjar metoden play2()
att spela upp en mediafil eller placerar mediafiler i kö för att skapa en spellista. När detta används tillsammans med Flash Media Server, kan metoden även begära att servern byter till en annan mediafil. Övergången sker helt omärkbart i klientprogrammet. Följande funktioner använder play2()
-strömväxling:
Dynamisk direktuppspelning
Med dynamisk direktuppspelning (stöds i Flash Media Server 3.5 och senare versioner) kan du skicka en ström som kodats med flera bithastigheter. Efterhand som användarens nätverksförhållanden ändras används den bithastighet som ger den bästa visningen. Använd klassen NetStreamInfo
om du vill övervaka nätverksförhållanden och byta flöden baserat på data. Du kan också byta flöden för klienter med annan kapacitet. Du hittar mer information i Dynamisk direktuppspelning i Adobe Flash Media Server Developer Guide.
Adobe har skapat en anpassad ActionScript-klass som anropar DynamicStream som utökar klassen NetStream. Du kan använda klassen DynamicStream när du vill implementera dynamisk direktuppspelning i ett program i stället för att skriva egen kod som identifierar nätverksförhållanden. Även om du väljer att skriva egen dynamisk direktuppspelningskod kan det vara bra att använda klassen DynamicStream som referensimplementering. Hämta klassen och klassdokumentationen på sidan med verktyg och hämtningsbara filer för Flash Media Server.
Återanslutning av strömmar
Med återanslutning av strömmar (stöds i Flash Media Server 3.5.3 och senare versioner) kan användare spela upp mediefiler utan avbrott även om anslutningen kopplas ned. Bufferten används då för uppspelning under tiden som ActionScript-logiken återansluter till Flash Media Server. Efter återanslutningen anropar du NetStream.attach()
för att använda samma NetStream-objekt med den nya NetConnection. Använd gränssnitten NetStream.attach()
, NetStreamPlayTransitions.RESUME
och NetStreamPlayTrasitions.APPEND_AND_WAIT
för att återansluta en ström. Du hittar mer information i dokumentationen för Flash Media Server 3.5.3.
Parametrar
param:NetStreamPlayOptions |
Relaterade API-element
preloadEmbeddedData | () | metod |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.5, Flash Lite 4 |
Extraherar alla DRM-metadata från en lokalt lagrad mediafil.
Använd preloadEmbeddedMetaData()
som första steg när du hämtar och cachelagrar DRM-verifikationerna som behövs för uppspelning offline. När inbäddade DRM-metadata upptäcks i en mediafil skickas ett DRMContentData-objekt till NetStream-klientfunktionen onDRMContentData
. Det här DRMContentData-objektet innehåller den information som behövs för att hämta verifikationen som krävs för att spela upp innehållet. Skicka DRMContentDataObject till DRMManager-metoden loadVoucher()
när du vill hämta verifikationen.
När du förhandsladdar en DRM-verifikation ingår följande steg:
-
Skapa ett nytt NetStream-objekt för förhandsladdning av metadata.
- Tilldela en återanropsfunktion till egenskapen
onDRMContentData
för NetStreamclient
. - Skapa ett nytt NetStreamPlayOptions-objekt och ställ in dess
streamName
-egenskap på URL-strängen för den lokala videofilen. - Anropa
preloadEmbeddedMetadata()
som skickas i NetStreamPlayOptions-objektet. - Som svar på
onDRMContentData
-återanropet anropar du metodenloadVoucher()
för DRMManager, och skickar med DRMContentData-objektet. Om egenskapenauthenticationMethod
för DRMContentData-objektet har värdetuserNameAndPassWord
verifierar du användaren på medierättighetsservern innan du läser in vouchern. - Stäng den NetStream som används för förhandsladdningen.
Obs! Om du vill använda samma NetStream-objekt för att både förhandsladda metadata och spela upp innehåll väntar du på det onPlayStatus
-anrop som genereras av förhandsladdningen innan du startar uppspelningen.
Hämtade verifikationer lagras i en lokal cache. När du spelar upp innehåll online hämtas verifikationerna och sedan cachelagras de. När en DRM-skyddad innehållsfil visas, hämtas en cachelagrad verifikation från den lokala lagringsplatsen automatiskt. Använd DRMManager när du vill hantera verifikationscachen.
Obs! Det går inte att förhandsladda DRM-metadata via HTTP-, HTTPS- och RTMP-anslutningar. Du kan bara förhandsladda metadata från filer som lagras i filsystemet.
Parametrar
param:NetStreamPlayOptions — Ett NetStreamPlayOptions som beskriver alternativen som kan användas när innehållsfilen bearbetas.
|
Relaterade API-element
publish | () | metod |
public function publish(name:String = null, type:String = null):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Skickar direktuppspelat ljud, direktuppspelad video och datameddelanden från en klient till Flash Media Server. Eventuellt registreras strömmen under överföringen. Den här metoden skickar ett NetStatusEvent-objekt med information om strömmen. Innan du anropar NetStream.publish()
använder du händelsen "NetConnection.Connect.Success"
för att kontrollera att programmet har anslutits till Flash Media Server.
Under publiceringen kan du spela in filer med formaten FLV eller F4V. Om du spelar in en fil i F4V-format ska du använda ett förenklingsverktyg om du vill redigera eller spela upp filen i ett annat program. Om du vill hämta verktyget besöker du www.adobe.com/go/fms_tools_se.
Obs! Använd inte den här metoden för direktuppspelning. Om du vill spela upp ett flöde anropar du metoden NetStream.play()
.
Arbetsflöde för att publicera en direktuppspelning
- Skapa ett NetConnection-objekt och anropa
NetConnection.connect()
. - Anropa
NetConnection.addEventListener()
för att avlyssna NetStatusEvent-händelser. - Skapa ett NetStream-objekt och skicka NetConnection-objektet till konstruktorn vid
"NetConnection.Connect.Success"
-händelsen. - Om du vill hämta ljud och video anropar du metoden
NetStream.attachAudio()
och metodenNetStream.attachCamera()
. - Om du vill publicera en ström anropar du metoden
NetStream.publish()
. Du kan spela in data under publiceringen så att användare kan göra en uppspelning vid ett senare tillfälle.
Obs! En NetStream kan antingen publicera en ström eller spela upp den, men inte bådadera. Du ska skapa två NetStream-objekt om du vill publicera en direktuppspelning och visa uppspelningen från servern. Du kan skicka flera NetStream-objekt över ett NetConnection-objekt.
En fil skapas när en direktuppspelning spelas in med Flash Media Server. Standard är att servern skapar en katalog med programinstansnamnet, som skickas till NetConnection.connect()
, och sparar filen i den katalogen. Följande kod ansluter till exempel till standardinstansen för programmet "lectureseries" och spelar in strömmen "lecture". Filen "lecture.flv" spelas in i katalogen 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"); } }
Följande exempel ansluter till "monday"-instansen av samma program. Filen lecture.flv spelas in i katalogen 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"); } }
Parametrar
name:String (default = null ) — En sträng som identifierar strömmen. Klienter som prenumererar på den här strömmen skickar det här namnet vid anrop av NetStream.play() . Skriv inte "/" efter flödets namn. Använd till exempel inte flödesnamnet "bolero/" .
Du kan spela in filer de format som beskrivs i följande tabell (du kan inte använda
| |||||||||||||
type:String (default = null ) — En sträng som anger hur strömmen ska publiceras. Giltiga värden är "record ", "append ", "appendWithGap " och "live ". Standardvärdet är " live ".
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
Om du vill köra det här exemplet behöver du en kamera som är ansluten till datorn. Du behöver också lägga till en Button-komponent och en Label-komponent i biblioteket.
Programmet har en knapp som publicerar en ström (skickar den till Flash Media Server), men inte förrän programmet har anslutit till servern. Programmet spelar inte upp strömmen från servern förrän den har publicerats utan fel. NetStatusEvent
returnerar ett info
-objekt med en code
-egenskap som specificerar dessa fall. Funktionen netStatusHandler
hanterar de här händelserna för klasserna NetConnection och 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 | () | metod |
public function receiveAudio(flag:Boolean):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger om inkommande ljud spelas upp i strömmen. Den här metoden är bara tillgänglig för klienter som prenumererar på den angivna strömmen. Den är inte tillgänglig för strömmens utgivare. Anropa den här metoden innan eller efter att du anropar metoden NetStream.play()
. Du kan till exempel koppla den här metoden till en knapp så att användare kan stänga av och slå på ljudet. Använd bara den här metoden på unicast-strömmar som spelas upp från Flash Media Server. Den här metoden fungerar inte på RTMFP multicast-strömmar eller när du använder metoden NetStream.appendBytes()
.
Parametrar
flag:Boolean — Anger om inkommande ljud spelas i dataflödet (true ) eller inte (false ). Standardvärdet är true . Om den angivna strömmen bara innehåller ljuddata stoppar NetStream.time ökningen när du skickar false .
|
receiveVideo | () | metod |
public function receiveVideo(flag:Boolean):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger om den inkommande videofilmen spelas upp i strömmen. Den här metoden är bara tillgänglig för klienter som prenumererar på den angivna strömmen. Den är inte tillgänglig för strömmens utgivare. Anropa den här metoden innan eller efter att du anropar metoden NetStream.play()
. Du kan till exempel koppla den här metoden till en knapp så att användare kan visa och dölja videon. Använd bara den här metoden på unicast-strömmar som spelas upp från Flash Media Server. Den här metoden fungerar inte på RTMFP multicast-strömmar eller när du använder metoden NetStream.appendBytes()
.
Parametrar
flag:Boolean — Anger om inkommande video spelas upp i den här strömmen (true ) eller inte (false ). Standardvärdet är true . Om den angivna strömmen bara innehåller videodata stoppar NetStream.time ökningen när du skickar false .
|
receiveVideoFPS | () | metod |
public function receiveVideoFPS(FPS:Number):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Anger bildrutefrekvensen för inkommande video. Den här metoden är bara tillgänglig för klienter som prenumererar på den angivna strömmen. Den är inte tillgänglig för strömmens utgivare. Anropa den här metoden innan eller efter att du anropar metoden NetStream.play()
. Anropa till exempel den här metoden för att låta användare ange videons bildrutefrekvens. Om du vill ta reda på den aktuella bildrutefrekvensen använder du NetStream.currentFPS
. Skicka 0
för att sluta ta emot video.
När du skickar ett värde till parametern FPS för att begränsa videons bildrutefrekvens gör Flash Media Server ett försök att minska bildrutefrekvensen samtidigt som videointegriteten bevaras. Servern skickar det minsta antal bildrutor, som behövs för att klara den önskade hastigheten, mellan varannan nyckelbildruta. Tänk på att mellanliggande bildrutor (eller I-bildrutor) måste skickas kontinuerligt, annars går videoströmmen inte att visa. Det önskade antalet bildrutor skickas därför omedelbart och kontinuerligt efter en nyckelbildruta. Eftersom bildrutorna inte är jämnt fördelade kan uppspelningen fungera bra i segment, för att sedan hacka.
Använd bara den här metoden på unicast-strömmar som spelas upp från Flash Media Server. Den här metoden fungerar inte på RTMFP multicast-strömmar eller när du använder metoden NetStream.appendBytes()
.
Parametrar
FPS:Number — Anger den bildrutefrekvens (fps) som inkommande video spelas upp med.
|
resetDRMVouchers | () | metod |
public static function resetDRMVouchers():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 11.8, Flash Lite 4 |
I AIR-program tar detta bort alla lokalt cachelagrade DRM-voucherdata (Digital Rights Management). För webbläsarbaserade program är detta bara tillgängligt vid 3322-fel och fungerar likadant som fliken med inställningar för Uppspelning av skyddat innehåll.
Programmet måste hämta om alla verifikationer som behövs från mediarättighetsservern för att användaren ska kunna få tillgång till skyddat innehåll. Att anropa den här funktionen motsvarar att anropa funktionen resetDRMVouchers()
för DRMManager-objektet.
Utlöser
IOError — Det går inte att ta bort voucherdata.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
NetStream.resetDRMVouchers();
resume | () | metod |
public function resume():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Återtar uppspelning av ett pausat videoflöde. Om videoklippet redan spelas upp när du anropar metoden händer ingenting.
Relaterade API-element
seek | () | metod |
public function seek(offset:Number):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Söker efter nyckelbildrutan (kallas även en I-frame i videobranschen) som är närmast den angivna platsen. Nyckelbildrutan placeras med en förskjutning i sekunder från direktuppspelningens början.
Videoflöden kodas oftast med två typer av bildrutor, nyckelbildrutor (eller I-frames) och P-frames. En nyckelbildruta innehåller en hel bild medan en P-frame är en mellanbildruta som innehåller ytterligare videoinformation mellan nyckelbildrutor. En videoström har vanligen nyckelbildrutor med mellan 10 och 50 bildrutors mellanrum.
Det finns olika typer av sökbeteenden i Flash Media Server, förbättrad sökning och smart sökning.
Förbättrad sökning
Förbättrad sökning är aktiverat som standard. Om du vill inaktivera förbättrad sökning i Flash Media Server anger du elementet EnhancedSeek
i konfigurationsfilen Application.xml
som false
.
Om förbättrad sökning är aktiverat skapar servern en ny nyckelbildruta vid offset
baserat på föregående nyckelbildruta och eventuella mellanliggande P-bildrutor (prediktiva bildrutor). Att skapa nyckelbildrutor medför emellertid en hög belastning för servern, och förvrängning kan uppstå i den nyckelbildruta som skapas. Om videokodeken On2 används, skickas nyckelbildrutan före sökpunkten och alla eventuella P-bildrutor mellan nyckelbildrutan och sökpunkten till klienten.
Om förbättrad sökning är inaktiverat börjar servern direktuppspelningen från den närmsta nyckelbildrutan. Anta till exempel att en video har nyckelrutor vid 0 sekunder och 10 sekunder. En sökning till 4 sekunder medför att uppspelningen startar vid 4 sekunder om nyckelrutan vid 0 sekunder används. Videon rör sig inte förrän nästa nyckelbildruta nås vid 10 sekunder. För att sökningen ska fungera smidigare måste du minska intervallet mellan nyckelbildrutorna. I normalt sökläge går det inte att starta videon vid en punkt som som ligger mellan nyckelbildrutorna.
Smart sökning
Om du vill aktivera smart sökning anger du NetStream.inBufferSeek
som true
.
Med smart sökning kan Flash Player söka inom en befintlig bakåt- och framåtbuffert. När smart sökning är inaktiverat tömmer Flash Player bufferten och begär data från servern varje gång seek()
anropas. Mer information finns i avsnittet om NetStream.inBufferSeek
.
Söka i datagenereringsläge
När du anropar seek()
för en NetStream i datagenereringsläge ignoreras alla byte som då skickas till appendBytes()
(de placeras inte i bufferten, samlas inte i FIFO för det ofullständiga meddelandet och tolkas inte efter sökpunkter) tills appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
eller appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)
anropas för att återställa tolken. Information om datagenereringsläge finns i NetStream.play()
.
Parametrar
offset:Number — Det ungefärliga tidsvärdet att gå till i en videofil, i sekunder. Om <EnhancedSeek> är inställt på true i konfigurationsfilen Application.xml i Flash Media Server (vilket den är som standard) skapar servern en nyckelbildruta vid offset .
|
Relaterade API-element
send | () | metod |
public function send(handlerName:String, ... arguments):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9 |
Skickar ett meddelande i ett publicerat flöde till alla mottagande klienter. Den här metoden är bara tillgänglig för utgivaren av den angivna strömmen. Den här metoden kan bara användas med Flash Media Server. Hantera och svara på meddelandet genom att skapa en hanterare i NetStream
-objektet, till exempel ns.HandlerName
.
Flash Player eller AIR serialiserar inte metoder eller deras data, objektprototypvariabler eller icke uppräkningsbara variabler. När det gäller visningsobjekt serialiserar Flash Player eller AIR sökvägen, men inga data.
Du kan anropa metoden send()
för att lägga till nyckelbildrutor med data i en liveström som publiceras till Flash Media Server. En nyckelbildruta med data är ett meddelande en utgivare lägger till i ett direktflöde. Nyckelbildrutor med data används oftast för att lägga till metadata i ett direktflöde innan data spelas in till flödet från en kamera eller mikrofon. Utgivaren kan lägga till en nyckelbildruta med data när som helst medan direktflödet publiceras. Nyckelbildrutan med data sparas på servern så länge utgivaren är ansluten till den.
Klienter som prenumererade på direktflödet innan nyckelbildrutan med data lades till får bildrutan direkt när den läggs till. Klienter som börjar prenumerera på direktflödet efter att nyckelbildrutan med data lagts till får bildrutan när de börjar prenumerera.
Om du vill lägga till en nyckelbildruta med metadata i ett direktflöde som skickas till Flash Media Server använder du @setDataFrame
som hanterarnamn följt av två ytterligare argument, till exempel:
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
Argumentet @setDataFrame
avser en specialhanterare som är inbyggd i Flash Media Server. Argumentet onMetaData
är namnet på en callback-funktion i klientprogrammet som avlyssnar händelsen onMetaData
och hämtar metadata. Det tredje objektet, metaData
, är en instans av Object
eller Array
med egenskaper som definierar metadatavärdena.
Använd @clearDataFrame
om du vill ta bort en nyckelbildruta med metadata som redan har angetts för dataflödet:
ns.send("@clearDataFrame", "onMetaData");
Parametrar
handlerName:String — Det meddelande som ska skickas; även namnet på ActionScript-hanteraren som tar emot meddelandet. Hanterarnamnet kan endast vara på en nivå (d.v.s. det kan inte ha formatet överordnad/underordnad) och är relativt till dataflödesobjektet. Använd inte en reserverad term som hanterarnamn. Om du till exempel använder "close " som hanterarnamn misslyckas metoden. Med Flash Media Server använder du @setDataFrame för att lägga till en nyckelbildruta med metadata i ett direktflöde eller @clearDataFrame om du vill ta bort en nyckelbildruta.
| |
... arguments — Valfria argument som kan vara vilken typ som helst. De är serialiserade och skickas via anslutningen. De tas emot i samma ordning av mottagande hanterare. Om en parameter är ett cirkulärt objekt (t.ex. en länkad lista som är cirkulär) hanteras referenserna korrekt av serialiseraren. Med Flash Media Server använder du onMetaData som andra argument om @setDataFrame är det första argumentet. Som tredje argument skickar du en instans av Object eller Array som innehåller metadata i form av egenskaper. En lista med förslag på egenskapsnamn finns i Flash Media Server Developer Guide. Om @clearDataFrame är det första argumentet använder duonMetaData som andra argument. Ange inget tredje argument.
|
Relaterade API-element
Exempel ( Så här använder du exemplet )
NetStream
-objekt. Det ena används för att publicera ett direktflöde till servern. Det andra prenumererar på dataflödet.
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
-händelsehanterare. Händelsehanteraren onMetaData
registreras inte i addEventListener()
. I stället är den en callback-funktion med namnet onMetaData
, till exempel:
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 | () | metod |
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Lite 4 |
Anger de DRM-autentiseringsuppgifter som krävs för att visa det underliggande krypterade innehållet.
Metoden setDRMAuthenticationCredentials()
måste ange autentiseringsuppgifter som matchar de som innehållsleverantören eller proxyservern känner till och godkänner. Autentiseringsuppgifterna är desamma som de användaren anger för att få behörighet att visa innehållet.
Parametrar
userName:String — Ett giltigt användarnamn.
| |
password:String — Det lösenord som motsvarar det angivna användarnamnet.
| |
type:String — En sträng som anger vilken typ av autentiseringsuppgifter som anges. Giltiga värden är "drm" och "proxy" . Standardvärdet är "drm" .
|
Relaterade API-element
step | () | metod |
public function step(frames:int):void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2 |
Stegar framåt eller bakåt med angivet antal bildrutor i förhållande till den bildruta som visas. Ange ett positivt tal för att stega framåt och ett negativt tal för att stega bakåt. Anropa den här metoden för att skapa korrekta funktioner för framåt- eller bakåtspolning.
Obs! Denna metod stöds inte för H.264-video i AIR 3.0 for iOS.
Den här metoden är bara tillgänglig när data direktuppspelas från Flash Media Server 3.5.3 eller senare och när NetStream.inBufferSeek
är true
. Målbildrutan måste dessutom vara i bufferten. Om den bildruta som visas för tillfället till exempel är nummer 120, och du anger värdet 1 000, misslyckas metoden om bildruta nummer 1 120 inte finns i bufferten.
Den här metoden är avsedd att användas med metoden pause()
eller togglePause()
. Om du stegar 10 bildrutor framåt eller bakåt under uppspelning utan att pausa kan det hända att du inte märker stegen eller att uppspelningen verkar hackig. Dessutom spelas inte ljudet upp när du anropar pause()
eller togglePause
.
Om anropet till NetStream.step()
lyckas skickas en NetStatusEvent med "NetStream.Step.Notify" som värde för infoobjektets code
-egenskap.
Parametrar
frames:int |
Relaterade API-element
togglePause | () | metod |
public function togglePause():void
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pausar eller fortsätter direktuppspelning. Första gången du anropar den här metoden pausas uppspelningen. Nästa gång återupptas uppspelningen. Du kan använda metoden för att låta användare pausa eller återuppta uppspelningen genom att endast behöva trycka på en knapp.
Relaterade API-element
asyncError | Händelse |
flash.events.AsyncErrorEvent
egenskap AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas om ett undantag inträffar asynkront, d.v.s. från ursprunglig asynkron kod. Den här händelsen skickas när en server anropar en metod i klienten som inte har definierats.
KonstantenAsyncErrorEvent.ASYNC_ERROR
definierar värdet för ett asyncError
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
target | Objektet som skickade händelsen. |
error | Felet som utlöste händelsen. |
Relaterade API-element
drmAuthenticate | Händelse |
flash.events.DRMAuthenticateEvent
egenskap DRMAuthenticateEvent.type =
flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Lite 4 |
Skickas när ett DRM-relaterat (Digital Rights Management) fel inträffar för ett NetStream-objekt som försöker spela upp DRM-krypterat innehåll som kräver användarautentisering före uppspelning.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
Autentisera användaren med hjälp av metoden setDRMAuthenticationCredentials()
för NetStream-objektet. Om användarautentiseringen misslyckas gör programmet ett nytt autentiseringsförsök och skickar en ny DRMAuthenticateEvent-händelse för NetStream-objektet.
DRMAuthenticateEvent.DRM_AUTHENTICATE
-konstanten definierar värdet på type
-egenskapen för ett DRMAuthenticateEvent-objekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
authenticationType | Indikerar om inloggningsuppgifterna gäller för autentisering mot Flash Media Rights Management Server (FMRMS) eller en proxyserver. |
bubbles | false |
cancelable | false det finns inget standardbeteende att avbryta. |
rubrik | Den krypterade innehållsfilens rubrik tillhandahålls av servern. |
netstream | NetStream-objektet som initierade den här händelsen. |
passwordPrompt | Ett kommando för ett inloggningslösenord tillhandahålls av servern. |
target | NetStream-objektet. |
urlPrompt | Ett kommando för en URL som ska visas tillhandahålls av servern. |
usernamePrompt | Ett kommando för ett inloggningsanvändarnamn tillhandahålls av servern. |
Relaterade API-element
drmError | Händelse |
flash.events.DRMErrorEvent
egenskap DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Skickas när ett DRM-relaterat (Digital Rights Management) fel inträffar för ett NetStream-objekt som försöker spela upp en DRM-krypterad fil. Exempelvis skickas ett DRMErrorEvent-objekt när användarautentiseringen misslyckas. Detta kan bero på att användaren inte har köpt rättigheterna att visa innehållet eller på att innehållsleverantören inte stöder visningsprogrammet.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
DRMErrorEvent.DRM_ERROR
-konstanten definierar värdet på type
-egenskapen i ett drmError
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
errorID | En numerisk felkod som tilldelats problemet. |
subErrorID | En felkod som indikerar mer detaljerad information om det underliggande problemet. |
target | NetStream-objektet. |
Relaterade API-element
drmStatus | Händelse |
flash.events.DRMStatusEvent
egenskap DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Skickas när det DRM-kodade (Digital Rights Management) innehållet börjar spelas upp (när användaren har autentiserats och är behörig att spela upp innehållet).
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
DRMStatusEvent-objektet innehåller information om vouchern, till exempel om innehållet är tillgängligt offline eller när vouchern upphör att gälla och användare inte längre kan visa innehållet.
DRMStatusEvent.DRM_STATUS
-konstanten definierar värdet på type
-egenskapen i ett drmStatus
-händelseobjekt.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
detalj | En sträng förklarar innehållet i statushändelsen. |
isAnonymous | Anger om innehållet som är skyddat med DRM-kryptering är tillgängligt utan att användaren måste ange sina inloggningsuppgifter. |
isAvailableOffline | Anger om innehållet som är skyddat med DRM-kryptering finns tillgängligt off-line. |
offlineLeasePeriod | Antal dagar kvar som innehållet kan visas off-line. |
policies | Ett anpassat objekt i DRM-statushändelsen. |
target | NetStream-objektet. |
voucherEndDate | Datumet då vouchern förfaller och innehållet inte längre kan visas för användare |
contentData | DRMContentData för innehållet |
voucher | DRMVoucher-objektet för innehållet. |
isLocal | Anger om innehållet lagras i det lokala filsystemet |
Relaterade API-element
ioError | Händelse |
flash.events.IOErrorEvent
egenskap IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas om ett in- eller utdatafel orsakar en misslyckad nätverksåtgärd.
Definierar värdet för ettioError
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
errorID | Ett referensnummer som associeras med det specifika felet (enbart AIR). |
target | Objektet är med om ett in-/utdatafel. |
text | Text som visas som felmeddelande. |
mediaTypeData | Händelse |
flash.events.NetDataEvent
egenskap NetDataEvent.type =
flash.events.NetDataEvent
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.3, AIR 2.7 |
Skickas när videoinnehåll spelas och när viss typ av meddelanden bearbetas.
Ett NetDataEvent skickas för följande meddelanden:
- onCuePoint
- onImageData
- onMetaData
- onPlayStatus (för koden NetStream.Play.Complete)
- onTextData
- onXMPData
Obs! Den här händelsen skickas inte av innehåll som körs i Flash Player i webbläsaren på operativsystemen för Android eller Blackberry Tablet, eller av innehåll som körs i AIR på iOS.
netStatus | Händelse |
flash.events.NetStatusEvent
egenskap NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skickas om objektet NetStream ger ett status- eller felmeddelande. Händelsen netStatus
innehåller egenskapen info
, vilket är ett informationsobjekt som innehåller specifik information om händelsen, t.ex. om en anslutning lyckades eller misslyckades.
netStatus
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
info | Ett objekt med egenskaper som beskriver objektets status eller feltillstånd. |
target | NetConnection- eller NetStream-objektet rapporterar status. |
Relaterade API-element
onCuePoint | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar en avlyssnare som svarar när en inbäddad referenspunkt nås vid uppspelning av en videofil. Du kan använda avlyssnaren till att utlösa åtgärder i programkoden när videon når en specifik referenspunkt, så att du kan synkronisera andra åtgärder i programmet med videouppspelningshändelser. Information om vilka videofilformat som stöds av Flash Media Server finns på www.adobe.com/go/learn_fms_fileformats_se.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
onCuePoint
är i själva verket en egenskap för NetStream.client
-objektet. Egenskapen listas i avsnittet Händelser eftersom den svarar på en datahändelse, antingen vid direktuppspelning av media med Flash Media Server eller vid uppspelning av en FLV-fil. Mer information finns i klassbeskrivningen för NetStream. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onCuePoint
som en händelse. Definiera en återanropsfunktion och koppla den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Den associerade händelseavlyssnaren aktiveras efter ett anrop till metoden NetStream.play()
, men innan videospelhuvudet flyttas framåt.
Du kan bädda in följande typer av referenspunkter i en videofil:
- En referenspunkt för navigering anger en nyckelbildruta i videofilen. Referenspunktens
time
-egenskap motsvarar den exakta nyckelbildrutan. Navigeringsreferenspunkter används ofta som bokmärken eller ingångspunkter så att användaren kan navigera i videofilen. - En händelsereferenspunkt anger en tid. Tiden kan, men behöver inte, motsvara en viss nyckelruta. En händelsereferenspunkt representerar oftast en tidpunkt i videon när någonting som kan användas för att aktivera andra programhändelser sker.
Händelseobjektet onCuePoint
har följande egenskaper:
Egenskap | Beskrivning |
---|---|
namn | Namnet som referenspunkten gavs när den bäddades in i videofilen. |
parameter | En associativ array av strängar med namnvärdespar som har angetts för referenspunkten. Parameterns namn eller värde kan vara vilken giltig sträng som helst. |
time | Tiden i antal sekunder när referenspunkten inträffade i videofilen vid uppspelningen. |
type | Typen av referenspunkt som nåddes, antingen vid navigering eller händelse. |
Du kan definiera referenspunkter i en videofil när du kodar filen eller när du importerar ett videoklipp i Flash-utvecklingsverktyget med guiden Importera video.
Händelsen onMetaData
hämtar även information om referenspunkterna i en videofil. Händelsen onMetaData
får emellertid information om alla referenspunkter innan videon börjar spelas upp. Händelsen onCuePoint
får information om en enda referenspunkt vid den tidpunkt som anges för den referenspunkten under uppspelningen.
I de flesta fall använder du händelsen onCuePoint
för att aktivera åtgärder i koden om du vill att koden ska svara på en viss referenspunkt vid det tillfälle den inträffar.
Du kan använda listan med referenspunkter som händelsen onMetaData
får så att användaren kan börja spela upp videon vid fördefinierade punkter i videoflödet. Skicka värdet för referenspunktens time
-egenskap till metoden NetStream.seek()
för att spela upp videon från referenspunkten.
Exempel ( Så här använder du exemplet )
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); }
Relaterade API-element
onDRMContentData | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.5, Flash Lite 4 |
Upprättar en avlyssnare som ska svara när AIR hämtar DRM-innehåll i form av metadata som är inbäddade i en mediafil.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
Ett DRMContentData-objekt innehåller den information som behövs för att hämta en verifikation som krävs för att spela upp en DRM-skyddad mediafil. Använd klassen DRMManager om du vill hämta verifikationen med den här informationen.
onDRMContentData
är en egenskap för NetStream.client
-objektet. Den här händelsen tas med i avsnittet Händelser eftersom den svarar på en datahändelse vid förhandsladdning av inbäddade data från en lokal mediefil. Mer information finns i klassbeskrivningen för NetStream. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onDRMContentData
som en händelse. Istället behöver du definiera en enkel callback-funktion och bifoga den direkt till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Däremot kan du skapa en underklass i NetStream och definiera din händelsehanterare i underklassen eller göra underklassen dynamisk och lägga till händelsehanterarfunktionen till en instans av underklassen.
Relaterade API-element
onImageData | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Skapar en avlyssnare som svarar när Flash Player tar emot bildinformation som en bytearray, inbäddad i mediafilen som spelas upp. Bildinformationen kan antingen skapa JPEG-, PNG- eller GIF-innehåll. Använd metoden flash.display.Loader.loadBytes()
för att läsa in byte-arrayen i visningsobjektet.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
onImageData
är i själva verket en egenskap för NetStream.client
-objektet. Egenskapen listas i avsnittet Händelser eftersom den svarar på en datahändelse, antingen vid direktuppspelning av media med Flash Media Server eller vid uppspelning av en FLV-fil. Mer information finns i klassbeskrivningen för NetStream. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onImageData
som en händelse. Definiera en enda återanropsfunktion och koppla den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Den associerade händelseavlyssnaren aktiveras efter ett anrop till metoden NetStream.play()
, men innan videospelhuvudet flyttas framåt.
Händelseobjektet onImageData innehåller alla bilddata i form av en byte-array som skickas genom en AMF0-datakanal.
Exempel ( Så här använder du exemplet )
Netstream.client
för att hantera återanropsfunktioner för onTextData
och onImageData
. onImageDataHandler()
-funktionen använder onImageData-händelseobjektet imageData
för att lagra byte-arrayen. Och onTextDataHandler()
-funktionen använder onTextData-händelseobjektet textData
för att lagra delar av textdata (varje del är en egenskap i textData
-objektet).
Du måste ersätta en absolut sökväg till en mediafil med text- eller bildmetadata för platsen ”yourURL”
i koden.
Du kan också hantera bilden och texten med en anpassad klass. Mer information finns i artikeln Hantera metadata och referenspunkter i 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]); } } } }
Relaterade API-element
onMetaData | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar en avlyssnare som svarar när den beskrivande informationen som är inbäddad i videofilen som spelas upp tas emot av Flash Player. Information om vilka videofilformat som stöds av Flash Media Server finns på www.adobe.com/go/learn_fms_fileformats_se.
onMetaData
är i själva verket en egenskap för NetStream.client
-objektet. Egenskapen listas i avsnittet Händelser eftersom den svarar på en datahändelse, antingen vid direktuppspelning av media med Flash Media Server eller vid uppspelning av en FLV-fil. Se NetStream-klassbeskrivningen och NetStream.client
-egenskapen om du vill ha mer information. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onMetaData
som en händelse. Definiera en enda återanropsfunktion och koppla den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Du kan skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Verktyget Flash Video Exporter (version 1.1 eller senare) bäddar in en videos längd, det datum filen skapades, videons datahastigheter och annan information om videon. Olika videokodare bäddar in olika uppsättningar metadata.
Den associerade händelseavlyssnaren aktiveras efter ett anrop till metoden NetStream.play()
, men innan videospelhuvudet flyttas framåt.
I många fall är längdvärdet som finns inbäddat i dataflödets metadata ungefär samma som den faktiska längden, men det är inte exakt. Värdet matchar alltså inte alltid värdet för egenskapen NetStream.time
när spelhuvudet är i slutet av videoflödet.
Händelseobjektet som skickas till onMetaData-händelsehanteraren innehåller en egenskap för varje datadel.
Exempel ( Så här använder du exemplet )
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); }
Relaterade API-element
onPlayStatus | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Skapar en avlyssnare som svarar när ett NetStream-objekt har spelat klart ett dataflöde. Det associerade händelseobjektet tillför information utöver det som returneras av netStatus
-händelsen. Du kan använda den här egenskapen för att utlösa åtgärder i programkoden när ett NetStream-objekt har växlat från en ström till en annan i en spellista (enligt informationsobjektet NetStream.Play.Switch
) eller när ett NetStream-objekt har spelat till slutet (enligt informationsobjektet NetStream.Play.Complete
).
onPlayStaus
är i själva verket en egenskap för NetStream.client
-objektet. Egenskapen listas i avsnittet Händelser eftersom den svarar på en datahändelse, antingen vid direktuppspelning av media med Flash Media Server eller vid uppspelning av en FLV-fil. Mer information finns i klassbeskrivningen för NetStream. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onPlayStatus
som en händelse. Definiera en återanropsfunktion och koppla den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Denna händelse kan returnera ett informationsobjekt med följande egenskaper:
Egenskapen Code | Egenskapen Level | Betydelse |
---|---|---|
NetStream.Play.Switch | "status" | Prenumeranten växlas från ett flöde till ett annat i en spelningslista. |
NetStream.Play.Complete | "status" | Uppspelningen är slutförd. |
NetStream.Play.TransitionComplete | "status" | Mottagaren byter till en ny ström som ett resultat av att strömmens överföringshastighet ändrades |
Relaterade API-element
onSeekPoint | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Anropas synkront från appendBytes()
när tolken för att lägga till byte når en punkt som identifieras som sökbar (t.ex. en videonyckelbildruta). Använd den här händelsen för att konstruera en sökpunktstabell. byteCount
motsvarar byteCount
vid den första byten i det tolkningsbara meddelandet för den sökpunkten och återställs till noll enligt ovanstående beskrivning. Om du vill söka letar du vid händelsen NetStream.Seek.Notify
upp de byte som börjar vid en sökbar punkt och anropar appendBytes(bytes)
. Om argumentet bytes
är en ByteArray
som består av byte som börjar vid den sökbar punkten spelas videon upp vid den sökpunkten.
Obs! Anrop till appendBytes()
inifrån det här återanropet ignoreras.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
Egenskapen onSeekPoint
är en egenskap i NetStream.client
-objektet. Egenskapen listas i avsnittet med händelser eftersom den svarar på data som kommer till funktionen appendBytes()
. Se NetStream-klassbeskrivningen och NetStream.client
-egenskapen om du vill ha mer information. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onSeekPoint
som en händelse. Om du vill använda onSeekPoint
definierar du en återanropsfunktion och kopplar den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Du kan däremot skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Relaterade API-element
onTextData | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Skapar en avlyssnare som svarar när Flash Player tar emot textinformation som är inbäddad i en mediafil som spelas upp. Alla textdata är i UTF-8-format och kan innehålla information om formatering baserat på textspecifikationen 3GP timed.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
onTextData
är i själva verket en egenskap för NetStream.client
-objektet. Egenskapen listas i avsnittet Händelser eftersom den svarar på en datahändelse, antingen vid direktuppspelning av media med Flash Media Server eller vid uppspelning av en FLV-fil. Mer information finns i klassbeskrivningen för NetStream. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onTextData
som en händelse. Definiera en återanropsfunktion och koppla den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Den associerade händelseavlyssnaren aktiveras efter ett anrop till metoden NetStream.play()
, men innan videospelhuvudet flyttas framåt.
onTextData-händelseobjektet innehåller en egenskap för varje textdatadel.
Exempel ( Så här använder du exemplet )
Netstream.client
för att hantera återanropsfunktioner för onTextData
och onImageData
. onImageDataHandler()
-funktionen använder onImageData-händelseobjektet imageData
för att lagra byte-arrayen. Och onTextDataHandler()
-funktionen använder onTextData-händelseobjektet textData
för att lagra delar av textdata (varje del är en egenskap i textData
-objektet).
Du måste ersätta en absolut sökväg till en mediafil med text- eller bildmetadata för platsen ”yourURL”
i koden.
Du kan också hantera bilden och texten med en anpassad klass. Mer information finns i artikeln Hantera metadata och referenspunkter i 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]); } } } }
Relaterade API-element
onXMPData | Händelse |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Skapar en avlyssnare som svarar när Flash Player tar emot information som är specifik för Adobe Extensible Metadata Platform (XMP) och som är inbäddad i videofilen som spelas upp. Information om vilka videofilformat som stöds av Flash Media Server finns på www.adobe.com/go/learn_fms_fileformats_se.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
onXMPData
är i själva verket en egenskap för NetStream.client
-objektet. Egenskapen listas i avsnittet Händelser eftersom den svarar på en datahändelse, antingen vid direktuppspelning av media med Flash Media Server eller vid uppspelning av en FLV-fil. Se NetStream-klassbeskrivningen och NetStream.client
-egenskapen om du vill ha mer information. Du kan inte använda metoden addEventListener()
eller någon annan EventDispatcher-metod när du ska avlyssna eller bearbeta onMetaData
som en händelse. Definiera en återanropsfunktion och koppla den till något av följande objekt:
- Objektet som egenskapen
client
i en NetStream-instans hänvisar till. - En instans av en NetStream-underklass. NetStream är en fast klass, vilket innebär att egenskaper eller metoder inte kan läggas till ett NetStream-objekt vid körningen. Du kan däremot skapa en underklass av NetStream och definiera en händelsehanterare i underklassen. Men du kan också göra underklassen dynamisk och lägga till händelsehanterarfunktionen i en instans av underklassen.
Den associerade händelseavlyssnaren aktiveras efter ett anrop till metoden NetStream.play()
, men innan videospelhuvudet flyttas framåt.
Objektet som skickas till onXMPData()
-händelsehanteringsfunktionen har en data
-egenskap som är en sträng. Strängen genereras från en UUID-låda. (UUID:t med 128 bitar för rutan på toppnivå är BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
.) UUID-rutan på den toppnivå innehåller exakt ett XML-dokument, som representeras av en UTF-8-sträng som avslutas med null.
Relaterade API-element
status | Händelse |
flash.events.StatusEvent
egenskap StatusEvent.type =
flash.events.StatusEvent.STATUS
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10.1, AIR 1.0, Flash Lite 4 |
Skickas när programmet gör ett försök att spela upp innehåll som har krypterats med DRM (Digital Rights Management), genom att anropa metoden NetStream.play()
. Värdet för statuskodsegenskapen är "DRM.encryptedFLV"
.
Obs! Denna händelse stöds inte för H.264-video i AIR 3.0 for iOS.
Definierar värdet för ettstatus
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
kod | En beskrivning av objektets status. |
currentTarget | Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. |
nivå | Meddelandets kategori, till exempel "status" , "warning" eller "error" . |
target | Objektet rapporterar status. |
Relaterade API-element
CONNECT_TO_FMS | Konstant |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Ett statiskt objekt används som parameter till konstruktorn för en NetStream-instans. Det är den andra parameterns standardvärde i NetStream-konstruktorn och används inte av programmet för progresssiv mediauppspelning. När parametern används styr den konstruktorn att göra en anslutning till en Flash Media Server-instans.
DIRECT_CONNECTIONS | Konstant |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Skapar en anslutning för peer-to-peer-publicering. Skicka den här strängen för den andra (valfria) parametern till konstruktorn för en NetStream-instans. Med den här strängen kan ett program skapa en NetStream-anslutning för publicering av ljud och video till klienter.
I detta exempel är koden som skapar objekten Video och NetStream samt anropar metoderna Video.attachNetStream()
och NetStream.play()
placerad i en hanterarfunktion. Hanteraren anropas endast om anslutningsförsöket till objektet NetConnection lyckades; d.v.s. om händelsen netStatus
returnerar ett info
-objekt med egenskapen code
som anger att anslutningen gick bra. Du rekommenderas att vänta tills anslutningen är genomförd innan du anropar 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
för att ange höjd och bredd på videoinstansen 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, 01:40 PM Z