Pakket | flash.net |
Klasse | public class NetStream |
Overerving | NetStream EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
U kunt de klasse NetStream voor de volgende doeleinden gebruiken:
-
NetStream.play()
aanroepen om een mediabestand vanaf een lokale schijf, webserver of Flash Media Server af te spelen. -
NetStream.publish()
aanroepen om een video-, audio- of gegevensstream naar Flash Media Server te publiceren. -
NetStream.send()
aanroepen om gegevensberichten naar alle geabonneerde clients te verzenden. -
NetStream.send()
aanroepen om metagegevens aan een live stream toe te voegen. -
NetStream.appendBytes
aanroepen om ByteArray-gegevens in de NetStream door te geven.
Opmerking: het is niet mogelijk om een stream via hetzelfde object NetStream af te spelen en te publiceren.
Adobe AIR en Flash Player 9.0.115.0 en hoger ondersteunen bestanden die zijn afgeleid van de standaard-MPEG-4-containerindeling. Dit zijn bestanden met indelingen als F4V, MP4, M4A, MOV, MP4V, 3GP en 3G2, op voorwaarde dat deze H.264-video, met HE-AAC v2 gecodeerde audio, of allebei bevatten. H.264 levert video van betere kwaliteit bij lagere bitsnelheden ten opzichte van hetzelfde coderingsprofiel in Sorenson of On2. AAC is een standaardaudio-indeling die is gedefinieerd in de MPEG-4-videonorm. HE-AAC v2 is een uitbreiding van AAC en gebruikt technieken als SBR (Spectral Band Replication) en PS (Parametric Stereo) om de codering en bitsnelheden te optimaliseren.
Raadpleeg de volgende bronnen voor informatie over ondersteunde codecs en bestandsindelingen:
- Documentatie bij Flash Media Server
- Informatie over ondersteuning van Flash Player voor high-definition H.264-video en AAC-audio
- Open specificatiedocumenten voor FLV/F4V
Gegevens ontvangen van een Flash Media Server-stream, een progressief F4V-bestand of een progressief FLV-bestand
Flash Media Server, F4V-bestanden en FLV-bestanden kunnen tijdens het streamen of afspelen op specifieke gegevenspunten gebeurtenisobjecten met gegevens versturen. U kunt gegevens uit een stream of FLV-bestand tijdens afspelen op twee manieren afhandelen:
-
Koppel een client-eigenschap aan een gebeurtenishandler om het gegevensobject te ontvangen. Gebruik de eigenschap
NetStream.client
om een object toe te wijzen om specifieke functies voor gegevensafhandeling aan te roepen. Het object dat is toegewezen aan de eigenschapNetStream.client
, kan luisteren of de volgende gegevenspunten aanwezigen zijn:onCuePoint()
,onImageData()
,onMetaData()
,onPlayStatus()
,onSeekPoint()
,onTextData()
enonXMPData()
. Schrijf procedures binnen deze functies om het gegevensobject te verwerken dat tijdens het afspelen uit de stream is geretourneerd. Zie de eigenschapNetStream.client
voor meer informatie. - Koppel een client-eigenschap aan een subklasse van de klasse NetStream en schrijf een gebeurtenishandler om het gegevensobject te ontvangen. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. U kunt echter een subklasse van NetStream maken en uw gebeurtenishandler in de subklasse definiëren. U kunt de subklasse ook dynamisch maken en de gebeurtenishandler toevoegen aan een instantie van de subklasse.
Wacht op de ontvangst van een NetGroup.Neighbor.Connect
-gebeurtenis voordat u de API's voor objectreplicatie, gestuurde routering of posting gebruikt.
Opmerking: Als u gegevens wilt verzenden via een audiobestand, bijvoorbeeld een MP3-bestand, gebruikt u de klasse Sound om het audiobestand aan een Sound-object te koppelen. Gebruik vervolgens de eigenschap Sound.id3
om metagegevens uit het geluidsbestand te lezen.
Ondersteuning voor met H.264 gecodeerde video in AIR for iOS
Voor H.264-video ondersteunt AIR 3.0 for iOS (en later) een subset van de volledige NetStream-API. In de volgende tabel ziet u NetStream-leden voor afspelen die niet worden ondersteund in AIR for iOS:
Niet-ondersteunde eigenschappen | Niet-ondersteunde methoden | Niet-ondersteunde gebeurtenissen |
---|---|---|
bufferTime | appendBytes() | onCuePoint (werkt alleen met FLV-bestanden) |
bufferLength | appendBytesAction() | onImageData |
backBufferTime | stap() | onSeekPoint |
backBufferLength | onTextData | |
bufferTimeMax | onXMPData | |
bytesLoaded | drmError | |
currentFPS | drmStatus | |
inBufferSeek | onDRMContentData | |
info | drmAuthenticate | |
liveDelay | DRM.encryptedFLV-statusgebeurteniscode | |
maxPauseBufferTime | ||
soundTransform | ||
Alle eigenschappen beschrijven RTMFP-verbindingen |
Zie de methode NetStream.play()
voor meer informatie over het gebruik van AIR for iOS.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
audioReliable : Boolean
Voor RTMFP-verbindingen, geeft aan of audio met volledige betrouwbaarheid is verzonden. | NetStream | ||
audioSampleAccess : Boolean
Voor RTMFP-verbindingen, geeft aan of peer-to-peerabonnees van deze NetStream de audiostream mogen vastleggen. | NetStream | ||
backBufferLength : Number [alleen-lezen]
Het aantal seconden van eerder weergegeven gegevens dat op dit moment wordt opgeslagen in cache voor terugspoelen en opnieuw afspelen. | NetStream | ||
backBufferTime : Number
Geeft aan hoeveel eerder weergegeven gegevens Flash Player probeert op te slaan voor terugspoelen en opnieuw afspelen, in seconden. | NetStream | ||
bufferLength : Number [alleen-lezen]
Het aantal seconden aan gegevens dat momenteel in de buffer staat. | NetStream | ||
bufferTime : Number
Geeft aan hoelang berichten worden gebufferd voordat de stream wordt afgespeeld. | NetStream | ||
bufferTimeMax : Number
Geeft de maximale bufferlengte aan voor live streamingcontent, in seconden. | NetStream | ||
bytesLoaded : uint [alleen-lezen]
Het aantal bytes aan gegevens dat in de toepassing is geladen. | NetStream | ||
bytesTotal : uint [alleen-lezen]
De totale grootte in bytes van het bestand dat in de toepassing wordt geladen. | NetStream | ||
checkPolicyFile : Boolean
Geeft aan of de toepassing een bestand met interdomeinbeleid moet downloaden van de server van het videobestand voordat het videobestand wordt geladen. | NetStream | ||
client : Object
Hiermee wordt het object aangegeven waarvoor callback-methoden worden geactiveerd om streaming of F4V/FLV-bestandsgegevens te verwerken. | NetStream | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
currentFPS : Number [alleen-lezen]
Het aantal frames dat per seconde wordt weergegeven. | NetStream | ||
dataReliable : Boolean
Bij RTMFP-verbindingen wordt hiermee aangegeven of NetStream.send()-aanroepen met volledige betrouwbaarheid worden verzonden. | NetStream | ||
farID : String [alleen-lezen]
Voor RTMFP-verbindingen, de ID aan het uiteinde die is verbonden aan deze instantie van NetStream. | NetStream | ||
farNonce : String [alleen-lezen]
Voor RTMFP- en RTMPE-verbindingen, een waarde die aanzienlijk is gekozen door het andere uiteinde van deze stream en uniek voor deze verbinding. | NetStream | ||
inBufferSeek : Boolean
Geeft op of de weergegeven gegevens in cache worden geplaatst voor slim zoeken (TRUE) of niet (FALSE). | NetStream | ||
info : NetStreamInfo [alleen-lezen]
Retourneert een object NetStreamInfo waarvan de eigenschappen statistische gegevens bevatten over de kwaliteit van service. | NetStream | ||
liveDelay : Number [alleen-lezen]
Het aantal seconden aan gegevens in de buffer van de bijbehorende stream in live (niet-gebufferde) modus. | NetStream | ||
maxPauseBufferTime : Number
Hiermee geeft u op hoe lang berichten tijdens de pauzemodus in de buffer bewaard moeten blijven, in seconden. | NetStream | ||
multicastAvailabilitySendToAll : Boolean
Voor RTMFP-verbindingen, geeft aan of peer-to-peermulticastfragmentbeschikbaarheidsberichten naar alle peers of naar één peer worden verzonden. | NetStream | ||
multicastAvailabilityUpdatePeriod : Number
Voor RTMFP-verbindingen, geeft de interval in seconden weer tussen berichten die naar peers worden gestuurd om hen te laten weten, dat er op het lokale knooppunt nieuwe peer-to-peermulticastmediafragmenten beschikbaar zijn. | NetStream | ||
multicastFetchPeriod : Number
Geeft voor RTMFP-verbindingen de tijd in seconden aan tussen het moment dat het lokale knooppunt voor het eerst te weten komt dat er een peer-to-peermulticastmediafragment beschikbaar is, en het moment dat het lokale knooppunt dit van een peer probeert op te halen. | NetStream | ||
multicastInfo : NetStreamMulticastInfo [alleen-lezen]
Voor RTMFP-verbindingen, geeft een NetStreamMulticastInfo-object weer, waarvan de eigenschappen statistieken bevatten over de kwaliteit van de service. | NetStream | ||
multicastPushNeighborLimit : Number
Voor RTMFP-verbindingen, geeft het maximumaantal peers aan, dat proactief multicastmedia presenteert. | NetStream | ||
multicastRelayMarginDuration : Number
Voor RTMFP-verbindingen, geeft in seconden aan, hoelang peer-to-peermulticastgegevens beschikbaar blijven om naar peers te verzenden die dit na een opgegeven tijdsduur aanvragen. | NetStream | ||
multicastWindowDuration : Number
Voor RTMFP-verbindingen, geeft in seconden de duur van het peer-to-peermulticastsamenstellingsvenster aan. | NetStream | ||
nearNonce : String [alleen-lezen]
Voor RTMFP- en RTMPE-verbindingen, een waarde die aanzienlijk is gekozen door het andere uiteinde van de stream en uniek voor deze verbinding. | NetStream | ||
objectEncoding : uint [alleen-lezen]
De objectcodering (AMF-versie) voor dit object NetStream. | NetStream | ||
peerStreams : Array [alleen-lezen]
Een object dat alle geabonneerde NetStream-instanties bevat die meeluisteren naar deze instantie van NetStream met publicatie. | NetStream | ||
soundTransform : flash.media:SoundTransform
Beheert geluid in dit object NetStream. | NetStream | ||
time : Number [alleen-lezen]
De positie van de afspeelkop in seconden. | NetStream | ||
useHardwareDecoder : Boolean
Geeft aan of met hardware versnelde decodering moet worden gebruikt voor de stream. | NetStream | ||
useJitterBuffer : Boolean
Minimaliseer de vertraging voor live, niet-gebufferde streaming (bufferTime = 0). | NetStream | ||
videoReliable : Boolean
Voor RTMFP-verbindingen, geeft aan of video met volledige betrouwbaarheid is verzonden. | NetStream | ||
videoSampleAccess : Boolean
Voor RTMFP-verbindingen, geeft aan of peer-to-peerabonnees van deze NetStream de videostream mogen vastleggen. | NetStream | ||
videoStreamSettings : VideoStreamSettings
Eigenschappen voor streamcompressie opgeven. | NetStream |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een stream die u kunt gebruiken voor het afspelen van mediabestanden en voor het verzenden van gegevens via een object NetConnection. | NetStream | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Geeft een ByteArray in een NetStream door om te worden uitgespeeld. | NetStream | ||
Geeft een discontinuïteit van de tijdschaal aan, maakt de FIFO leeg en kondigt een bestandsheader of het begin van een FLV-tag aan bij de byteparser. | NetStream | ||
Koppelt een stream aan een nieuw NetConnection-object. | NetStream | ||
Koppelt een audiostream aan een NetStream-object vanuit een Microphone-object dat als de bron is doorgegeven. | NetStream | ||
Hiermee wordt het vastleggen van video via een camera gestart, of wordt het vastleggen gestopt wanneer theCamera op null is ingesteld. | NetStream | ||
Stopt het afspelen van alle gegevens van de stream, stelt de eigenschap time in op 0 en maakt de stream beschikbaar voor alternatief gebruik. | NetStream | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Geeft alle bronnen vrij die worden vastgehouden door het NetStream-object. | NetStream | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Wordt geactiveerd wanneer een stream met publicatie naar gelijkwaardige items overeenkomt met een stream met abonnement op gelijkwaardige items. | NetStream | ||
Pauzeert het afspelen van een videostream. | NetStream | ||
Speelt het mediabestand af vanuit een lokale directory of vanaf een webserver; speelt een mediabestand of een live stream van Flash Media Server af. | NetStream | ||
Schakelt naadloos tussen bestanden met meerdere bitratio's en staat een NetStream toe om te hervatten wanneer een verbinding wordt geannuleerd en opnieuw wordt aangesloten. | NetStream | ||
Hiermee worden DRM-metagegevens uit een lokaal opgeslagen mediabestand opgehaald. | NetStream | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verzendt streaming audio, video en gegevensberichten van een client naar Flash Media Server. De stream kan optioneel tijdens het verzenden worden opgenomen. | NetStream | ||
Geeft op of binnenkomende audio op de stream wordt afgespeeld. | NetStream | ||
Hiermee wordt opgegeven of binnenkomende video op de stream wordt afgespeeld. | NetStream | ||
Bepaalt de framesnelheid voor inkomende video. | NetStream | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
[statisch]
In AIR-toepassingen worden hiermee alle lokaal in de cache geplaatste vouchergegevens voor Digital Rights Management (DRM) verwijderd. | NetStream | ||
Hervat het afspelen van een gepauzeerde videostream. | NetStream | ||
Zoekt het hoofdframe (ook wel I-frame genoemd) dat zich het dichtst bij de opgegeven locatie bevindt. | NetStream | ||
Hiermee wordt een bericht over de gepubliceerde stream naar alle geabonneerde clients verzonden. | NetStream | ||
Stelt de DRM-verificatiereferenties in die nodig zijn om de onderliggende gecodeerde inhoud weer te geven. | NetStream | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Gaat het opgegeven aantal frames vooruit of achteruit, afhankelijk van het frame dat op dat moment wordt weergegeven. | NetStream | ||
Pauzeert of hervat het afspelen van een stream. | NetStream | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
Wordt verzonden wanneer een uitzondering asynchroon — wordt gegenereerd, dat wil zeggen, vanuit native asynchrone code. | NetStream | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden wanneer een NetStream-object met DRM-gecodeerde inhoud (digital rights management) probeert af te spelen waarvoor ter verificatie gebruikersreferenties nodig zijn. | NetStream | |||
Wordt verzonden wanneer een NetStream-object, dat een met DRM (Digital Rights Management) gecodeerd bestand probeert af te spelen, een DRM-fout detecteert. | NetStream | |||
Wordt verzonden wanneer de met DRM (digital rights management) gecodeerde inhoud wordt afgespeeld (nadat de gebruiker is geverifieerd en is gemachtigd om de inhoud af te spelen). | NetStream | |||
Wordt verzonden wanneer een invoer- of uitvoerfout optreedt die ertoe leidt dat een netwerkbewerking mislukt. | NetStream | |||
Verzonden wanneer de video-inhoud wordt afgespeeld en bepaalde type berichten worden verwerkt. | NetStream | |||
Wordt verzonden wanneer een object NetStream de eigen status of fout meldt. | NetStream | |||
Hiermee stelt u een listener in die antwoordt wanneer tijdens het afspelen van een videobestand een ingesloten actiepunt is bereikt. | NetStream | |||
Hiermee wordt een listener ingesteld die antwoordt wanneer AIR metagegevens ophaalt uit DRM-inhoud die is ingesloten in een mediabestand. | NetStream | |||
Hiermee wordt een listener ingesteld die antwoordt wanneer Flash Player afbeeldingsgegevens ontvangt als een bytearray die is ingesloten in een mediabestand dat wordt afgespeeld. | NetStream | |||
Hiermee wordt een listener ingesteld die antwoordt wanneer Flash Player beschrijvende informatie ontvangt die is ingesloten in de video die wordt afgespeeld. | NetStream | |||
Hiermee wordt een listener ingesteld die moet antwoorden wanneer een NetStream-object een stream volledig heeft afgespeeld. | NetStream | |||
Wordt synchroon aangeroepen vanuit appendBytes() wanneer de parser voor het toevoegen van bytes een punt tegenkomt en denkt dat dit punt doorzoekbaar is (bijvoorbeeld een videohoofdframe). | NetStream | |||
Hiermee wordt een listener ingesteld die antwoordt wanneer Flash Player tekstgegevens ontvangt die zijn ingesloten in een mediabestand dat wordt afgespeeld. | NetStream | |||
Hiermee wordt een listener tot stand gebracht die reageert wanneer Flash Player gegevens ontvangt met betrekking tot het Adobe Extensible Metadata Platform (XMP) dat is ingesloten in de video die wordt afgespeeld. | NetStream | |||
Wordt verzonden wanneer de toepassing inhoud die is gecodeerd met DRM (Digital Rights Management) probeert af te spelen door de methode NetStream.play() te activeren. | NetStream |
Constante | Gedefinieerd door | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [statisch]
Een statisch object dat wordt gebruikt als parameter voor de constructor voor een instantie van NetStream. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [statisch]
Maakt een gelijkwaarde pubicatieverbinding. | NetStream |
audioReliable | eigenschap |
audioReliable:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft aan of audio met volledige betrouwbaarheid is verzonden. Bij de waarde TRUE is alle audio die over deze NetStream wordt verzonden volledig betrouwbaar. Bij de waarde FALSE is de verzonden audio niet volledig betrouwbaar. De audiostream wordt tijdelijk opnieuw verzonden en dan gestopt. Met de waarde FALSE kunt u de latentie verkleinen, maar dit gaat ten koste van de audiokwaliteit.
Als u probeert om deze eigenschap in te stellen op FALSE voor een netwerkprotocol dat geen gedeeltelijke betrouwbaarheid ondersteunt, wordt de poging genegeerd en de eigenschap op TRUE ingesteld.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get audioReliable():Boolean
public function set audioReliable(value:Boolean):void
Verwante API-elementen
audioSampleAccess | eigenschap |
audioSampleAccess:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft aan of peer-to-peerabonnees van deze NetStream de audiostream mogen vastleggen. Bij de waarde FALSE worden machtigingsfouten weergegeven als de abonnee de audiostream wil opnemen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get audioSampleAccess():Boolean
public function set audioSampleAccess(value:Boolean):void
Verwante API-elementen
backBufferLength | eigenschap |
backBufferLength:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Het aantal seconden van eerder weergegeven gegevens dat op dit moment wordt opgeslagen in cache voor terugspoelen en opnieuw afspelen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Deze eigenschap is alleen beschikbaar wanneer er gegevens worden gestreamd vanaf Flash Media Server 3.5.3 of hoger. Zie de klassenbeschrijving voor meer informatie over Flash Media Server.
Als u wilt opgeven hoeveel gegevens die voorheen zijn weergegeven zich in het cachegeheugen bevinden, gebruikt u de eigenschap Netstream.backBufferTime
.
Om te voorkomen dat gegevens in cache worden opgeslagen, stelt u de eigenschap Netstream.inBufferSeek
in op FALSE.
Implementatie
public function get backBufferLength():Number
Verwante API-elementen
backBufferTime | eigenschap |
backBufferTime:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Geeft aan hoeveel eerder weergegeven gegevens Flash Player probeert op te slaan voor terugspoelen en opnieuw afspelen, in seconden. De standaardwaarde is 30 seconden voor bureaubladtoepassingen en 3 seconden voor mobiele toepassingen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Deze eigenschap is alleen beschikbaar wanneer er gegevens worden gestreamd vanaf Flash Media Server versie 3.5.3 of hoger. Zie de klassenbeschrijving voor meer informatie over Flash Media Server.
Met deze eigenschap worden de terugspoelbewerkingen beter uitgevoerd, omdat gegevens die al zijn weergegeven niet nogmaals worden opgehaald van de server. In plaats hiervan begint de stream met het opnieuw afspelen vanuit de buffer. Tijdens het afspelen, worden de gegevens via streaming van de server opgehaald tot de buffer vol is.
Als de terugspoelpositie verder terug is dan de gegevens in het cachegeheugen, wordt de inhoud van de buffer verwijderd, waarna de gegevens via streaming van de server worden opgehaald tot de opgevraagde positie is bereikt.
Gebruik deze eigenschap om de Netstream.inBufferSeek
-eigenschap op TRUE in te stellen.
Implementatie
public function get backBufferTime():Number
public function set backBufferTime(value:Number):void
Verwante API-elementen
bufferLength | eigenschap |
bufferLength:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal seconden aan gegevens dat momenteel in de buffer staat. U kunt deze eigenschap gebruiken in combinatie met de eigenschap bufferTime
om te bepalen hoe vol de buffer is, bijvoorbeeld om feedback weer te geven voor een gebruiker die wacht tot gegevens in de buffer zijn geladen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get bufferLength():Number
Verwante API-elementen
bufferTime | eigenschap |
bufferTime:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft aan hoelang berichten worden gebufferd voordat de stream wordt afgespeeld.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
De standaardwaarde is 0,1 (een tiende van een seconde). Gebruik de eigenschap bufferLength
om te bepalen hoeveel seconden zich momenteel in de buffer bevinden.
Als u een afspeellijst die zich bevindt op een server, wilt afspelen stelt u bufferTime
in op ten minste 1 seconde. Stel bufferTime
in op een hogere waarde als u problemen ondervindt bij het afspelen.
Opgenomen content Om vervorming te voorkomen bij het streamen van vooraf opgenomen (geen live) content, moet u de waarde voor Netstream.bufferTime
niet op 0 instellen. De toepassing maakt standaard gebruik van een invoerbuffer voor vooraf opgenomen inhoud, waardoor de mediagegevens in de wachtrij worden geplaatst en de media op de juiste wijze worden afgespeeld. Maak bij vooraf opgenomen inhoud gebruik van de standaardinstelling of vergroot de buffertijd.
Live content Wanneer u live content streamt, wordt de bufferTime
-eigenschap op 0 ingesteld.
Vanaf Flash Player 9.0.115.0 wordt de buffer niet meer gewist wanneer NetStream.pause()
wordt aangeroepen. Vóór Flash Player 9.0.115.0 wachtte Flash Player tot de buffer vol was alvorens het afspelen voort te zetten. Dit veroorzaakte dikwijls enige vertraging.
Voor een enkele pauze, had de eigenschap NetStream.bufferLength
een beperking van oftewel 60 seconden of tweemaal de waarde van NetStream.bufferTime
, afhankelijk van welke waarde hoger was. Als bufferTime
bijvoorbeeld is ingesteld op 20 seconden, blijft Flash Player de buffer vullen totdat NetStream.bufferLength
de waarde heeft van 20*2 (40) of 60 (de hoogste waarde wordt gebruikt). In dit geval wordt de buffer gevuld totdat bufferLength
60 is. Als bufferTime
is ingesteld op 40 seconden, blijft Flash Player de buffer vullen totdat bufferLength
de waarde heeft van 40*2 (80) of 60 (de hoogste waarde wordt gebruikt). In dit geval wordt de buffer gevuld tot bufferLength
80 seconden is.
De eigenschap bufferLength
heeft ook een absolute limiet. Als een aanroep naar pause()
tot gevolg heeft dat bufferLength
meer dan 600 seconden is of de waarde krijgt van bufferTime
* 2 - welke waarde hoger is -, maakt Flash Player de buffer leeg en wordt bufferLength
weer ingesteld op 0. Als bufferTime
bijvoorbeeld 120 seconden is, maakt Flash Player de buffer leeg als bufferLength
600 seconden heeft bereikt. als bufferTime
360 seconden is, maakt Flash Player de buffer leeg als bufferLength
720 heeft bereikt.
Tip: U kunt NetStream.pause()
in code gebruiken om gegevens in de buffer op te slaan terwijl kijkers bijvoorbeeld naar reclame kijken, en de onderbreking weer opheffen wanneer de hoofdvideo start.
Zie http://www.adobe.com/go/learn_fms_smartpause_nl voor meer informatie over het invoegen van een pauze.
Flash Media Server. Het buffergedrag wordt bepaald aan de hand van het feit of de buffertijd op een publicatiestream of op een abonnementstream is ingesteld. In het geval van een publicatiestream geeft bufferTime
op hoe lang de uitgaande buffer kan toenemen voordat de toepassing frames verwijdert. Bij een snelle verbinding zou de buffertijd geen probleem moeten zijn, aangezien gegevens bijna net zo snel worden verzonden als de toepassing ze kan bufferen. Bij een langzame verbinding kan er echter een aanzienlijk verschil zitten tussen de snelheid waarmee de toepassing de gegevens buffert en de snelheid waarmee deze naar de client worden verzonden.
In het geval van een abonnementstream geeft bufferTime
op hoe lang binnenkomende gegevens moeten worden gebufferd voordat de stream wordt weergegeven.
Wanneer een opgenomen stream wordt afgespeeld en bufferTime
nul is, wordt deze op een klein getal ingesteld (ongeveer 10 milliseconden). Wanneer live streams later worden afgespeeld (bijvoorbeeld via een afspeellijst), is deze buffertijd blijvend. Met andere woorden, bufferTime
blijft voor de stream niet gelijk aan nul.
Implementatie
public function get bufferTime():Number
public function set bufferTime(value:Number):void
Verwante API-elementen
bufferTimeMax | eigenschap |
bufferTimeMax:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Geeft de maximale bufferlengte aan voor live streamingcontent, in seconden. De standaardwaarde is 0. Bufferlengte kan met de tijd toenemen als gevolg van netwerk- en apparaatproblemen (zoals klokverloop tussen zender en ontvanger). Stel deze eigenschap in om een maximum in te stellen voor de bufferlengte voor livetoepassingen zoals vergaderingen en surveillance.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Wanneer bufferTimeMax > 0
en bufferLength >= bufferTimeMax
, wordt de audio sneller afgespeeld totdat bufferLength
bufferTime
bereikt. Als een livestream alleen-video is, speelt de video sneller tot de bufferLength
bufferTime
bereikt.
Afhankelijk van hoeveel het afspelen is vertraagt (het verschil tussen bufferLength
en bufferTime
), bepaalt Flash Player de inhalingssnelheid tussen 1,5% en 6,25%. Als de stream audio bevat, wordt sneller afspelen bereikt door het downsamplen van het frequentiedomein, waardoor de hoorbare storing wordt geminimaliseerd.
Stel de eigenschap bufferTimeMax
in om het bijwerken van de gebufferde livestream in te schakelen in de volgende gevallen:
- Livemedia streamen van Flash Media Server.
- Livemedia streamen in de modus voor gegevensgeneratie (
NetStream.appendBytes()
).
Implementatie
public function get bufferTimeMax():Number
public function set bufferTimeMax(value:Number):void
Verwante API-elementen
bytesLoaded | eigenschap |
bytesLoaded:uint
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal bytes aan gegevens dat in de toepassing is geladen. U kunt deze eigenschap gebruiken in combinatie met de eigenschap bytesTotal
om te bepalen hoe vol de buffer is, bijvoorbeeld om feedback weer te geven voor een gebruiker die wacht tot gegevens in de buffer zijn geladen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get bytesLoaded():uint
Verwante API-elementen
bytesTotal | eigenschap |
checkPolicyFile | eigenschap |
checkPolicyFile:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geeft aan of de toepassing een bestand met interdomeinbeleid moet downloaden van de server van het videobestand voordat het videobestand wordt geladen. Gebruik deze eigenschap voor het progressief downloaden van video's en voor het laden van bestanden die zich buiten het eigen domein van het aanroepende SWF-bestand bevinden. Deze eigenschap wordt genegeerd wanneer u RTMP gebruikt.
Stel deze eigenschap in op true
om BitmapData.draw()
aan te roepen voor een videobestand dat wordt geladen vanuit een domein dat zich buiten het domein van het aanroepende SWF-bestand bevindt. De methode BitmapData.draw()
biedt op pixelniveau toegang tot de video. Wanneer u bij het laden BitmapData.draw()
aanroept zonder de eigenschap checkPolicyFile
in te stellen op true
, kan de uitzondering SecurityError
worden gegenereerd omdat het vereiste beleidsbestand niet is gedownload.
Stel deze eigenschap alleen in op true als u op pixelniveau toegang tot de video wilt. Controleren of er een beleidsbestand aanwezig is, kost netwerkbandbreedte en kan het starten van het downloaden vertragen.
Wanneer u de methode NetStream.play()
aanroept terwijl checkPolicyFile
is ingesteld op true
, moet Flash Player of de AIR-runtime voordat het downloaden begint een relevant bestand met interdomeinbeleid hebben gedownload of hebben vastgesteld dat een dergelijk beleidsbestand niet bestaat. Flash Player of de AIR-runtime voert de volgende handelingen uit, in de aangegeven volgorde, om te bepalen of een beleidsbestand bestaat:
- De toepassing controleert of al beleidsbestanden zijn gedownload.
- De toepassing probeert eventuele in behandeling zijnde beleidsbestanden te downloaden die zijn opgegeven in aanroepen van
Security.loadPolicyFile()
. - De toepassing probeert een beleidsbestand te downloaden van de standaardlocatie die overeenkomt met de URL die u hebt doorgegeven aan
NetStream.play()
, hetgeen overeenkomt met/crossdomain.xml
op dezelfde server als die URL.
In alle gevallen vereist Flash Player of Adobe AIR dat een geschikt beleidsbestand aanwezig is op de server met de video, dat dit op basis van de locatie van het beleidsbestand toegang biedt tot het object op de URL die u hebt doorgegeven aan play()
en dat het aan het domein van het aanroepende bestand toegang biedt tot de video op basis van een of meer <allow-access-from>
-tags.
Wanneer u checkPolicyFile
instelt op true
, wacht de toepassing totdat het beleidsbestand gecontroleerd is voordat de video wordt gedownload. Wacht met het uitvoeren van bewerkingen op pixelniveau op de videogegevens, zoals het aanroepen van BitmapData.draw()
, totdat u gebeurtenissen onMetaData
of NetStatus
van het object NetStream ontvangt.
Wanneer u checkPolicyFile
op true
instelt, maar geen geschikt beleidsbestand wordt gevonden, wordt pas een foutbericht weergegeven wanneer u een bewerking uitvoert waarvoor een beleidsbestand is vereist, waarna de toepassing een SecurityError-uitzondering genereert.
Ga zorgvuldig met checkPolicyFile
om wanneer u een bestand downloadt van een URL die HTTP-serveromleidingen gebruikt. De toepassing probeert beleidsbestanden op te halen die overeenkomen met de eerste URL die u in NetStream.play()
opgeeft. Wanneer het laatste videobestand van een andere URL afkomstig is vanwege HTTP-omleidingen, zijn de oorspronkelijk gedownloade beleidsbestanden mogelijk niet van toepassing op de laatste URL van het bestand. Dit is de URL die van belang is in beveiligingskwesties.
Zie "Website-bediening (beleidsbestanden)" in de Adobe ActionScript 3.0-ontwikkelaarsgids en het Flash Player Developer Center-onderwerp:Security voor meer informatie.
Implementatie
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
Verwante API-elementen
client | eigenschap |
client:Object
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt het object aangegeven waarvoor callback-methoden worden geactiveerd om streaming of F4V/FLV-bestandsgegevens te verwerken. Het standaardobject is this
, het object NetStream dat wordt gemaakt. Wanneer u de eigenschap client
op een ander object instelt, worden callbackmethoden voor dat object aangeroepen. Het object NetStream.client
kan de volgende functies aanroepen en een gekoppeld gegevensobject ontvangen: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onSeekPoint()
, onTextData()
en onXMPData()
.
Ga als volgt te werk om de eigenschap client
aan een gebeurtenishandler te koppelen:
- Maak een object en ken dit toe aan de eigenschap
client
van het NetStream-object:var customClient:Object = new Object(); my_netstream.client = customClient;
- Ken een afhandelingsfunctie voor de gewenste gegevensgebeurtenis toe als een eigenschap van het client-object:
customClient.onImageData = onImageDataHandler;
- Schrijf de afhandelingsfunctie om het gegevensgebeurtenisobject te ontvangen, zoals:
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
Wanneer gegevens via de stream of tijdens het afspelen worden doorgegeven, wordt het gegevensgebeurtenisobject (in dit geval het imageData
-object) met de gegevens gevuld. Zie de beschrijving van onImageData
. Hier vindt u een volledig voorbeeld van een object dat is toegewezen aan de eigenschap client
.
Ga als volgt te werk om de eigenschap client
aan een subklasse te koppelen:
- Maak een subklasse met een afhandelingsfunctie om het gegevensgebeurtenisobject te ontvangen:
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
- Ken een instantie van de subklasse toe aan de eigenschap
client
van het NetStream-object:my_netstream.client = new CustomClient();
Wanneer gegevens via de stream of tijdens het afspelen worden doorgegeven, wordt het gegevensgebeurtenisobject (in dit geval het info
-object) met de gegevens gevuld. Zie het voorbeeld van de klasse onder aan de klasse NetStream, waarin de toewijzing van een subklasse-instantie aan de eigenschap client
wordt geïllustreerd.
Implementatie
public function get client():Object
public function set client(value:Object):void
Gegenereerde uitzondering
TypeError — De eigenschap client moet zijn ingesteld op een object dat niet null is.
|
Verwante API-elementen
currentFPS | eigenschap |
currentFPS:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal frames dat per seconde wordt weergegeven. Wanneer u videobestanden exporteert om op een aantal systemen af te spelen, kunt u deze waarde tijdens het testen controleren om te bepalen hoeveel compressie u tijdens het exporteren moet toepassen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get currentFPS():Number
dataReliable | eigenschap |
dataReliable:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Bij RTMFP-verbindingen wordt hiermee aangegeven of NetStream.send()
-aanroepen met volledige betrouwbaarheid worden verzonden. Bij de waarde TRUE zijn alle NetStream.send()
-aanroepen die over deze NetStream worden verzonden, volledig betrouwbaar. Bij de waarde FALSE is de verzending van de NetStream.send()
-aanroepen niet volledig betrouwbaar. De aanroepen worden tijdelijk opnieuw verzonden en dan gestopt. U kunt deze waarde instellen op FALSE om de latentie te verminderen ten koste van de gegevenskwaliteit.
Als u probeert om deze eigenschap in te stellen op FALSE voor een netwerkprotocol dat geen gedeeltelijke betrouwbaarheid ondersteunt, wordt de poging genegeerd en de eigenschap op TRUE ingesteld.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get dataReliable():Boolean
public function set dataReliable(value:Boolean):void
Verwante API-elementen
farID | eigenschap |
farID:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Voor RTMFP-verbindingen, de ID aan het uiteinde die is verbonden aan deze instantie van NetStream.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get farID():String
farNonce | eigenschap |
farNonce:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Voor RTMFP- en RTMPE-verbindingen, een waarde die aanzienlijk is gekozen door het andere uiteinde van deze stream en uniek voor deze verbinding. Deze waarde verschijnt aan het andere uiteinde van de stream als de waarde nearNonce
ervan.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get farNonce():String
inBufferSeek | eigenschap |
inBufferSeek:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Geeft op of de weergegeven gegevens in cache worden geplaatst voor slim zoeken (TRUE
) of niet (FALSE
). De standaardwaarde is FALSE.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Flash Media Server 3.5.3 en Flash Player 10.1 werken samen bij het ondersteunen van slim zoeken. Slim zoeken gebruikt achterwaartse en voorwaartse buffers om te zoeken zonder gegevens van de server aan te vragen. Standaard zoeken maakt gebufferde gegevens leeg en vraagt de server om nieuwe gegevens op basis van zoektijd te versturen.
Roep NetStream.step()
op om een bepaald aantal frames vooruit of achteruit te gaan. Roep NetStream.seek()
op om een bepaald aantal seconden vooruit of achteruit te zoeken.
Slim zoeken beperkt de serverlading en verbetert de zoekprestaties. Stel inBufferSeek=true
in en roep step()
en seek()
op en maak:
- Client DVR-functionaliteit. Zoek binnen de clientbuffer in plaats van de nieuwe video via de server leveren.
- Trucmodussen. Maak spelers die met stappen door frames gaan, snel achterwaarts of voorwaarts spoelen of langzaam voorwaarts spoelen.
Wanneer inBufferSeek=true
en een oproep naar NetStream.seek()
is gelukt, bevat de NetStatusEvent info.description
-eigenschap de tekenreeks "client-inBufferSeek"
.
Wanneer een oproep naar NetStream.step()
gelukt is, bevat de NetStatusEvent info.code
-eigenschap de tekenreeks "NetStream.Step.Notify"
.
Implementatie
public function get inBufferSeek():Boolean
public function set inBufferSeek(value:Boolean):void
Verwante API-elementen
info | eigenschap |
info:NetStreamInfo
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Retourneert een object NetStreamInfo waarvan de eigenschappen statistische gegevens bevatten over de kwaliteit van service. Het object is een momentopname van de huidige staat.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get info():NetStreamInfo
Verwante API-elementen
liveDelay | eigenschap |
liveDelay:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Het aantal seconden aan gegevens in de buffer van de bijbehorende stream in live (niet-gebufferde) modus. Met deze eigenschap wordt de huidige vertraging in de netwerktransmissie (vertragingstijd) opgegeven.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Deze eigenschap is voornamelijk bedoeld voor gebruik in combinatie met een server zoals Flash Media Server. Zie de klassebeschrijving voor meer informatie.
Aan de hand van de waarde voor deze eigenschap kunt u een ruwe schatting maken van de transmissiekwaliteit van de stream en deze doorgeven aan de gebruiker.
Implementatie
public function get liveDelay():Number
maxPauseBufferTime | eigenschap |
maxPauseBufferTime:Number
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hiermee geeft u op hoe lang berichten tijdens de pauzemodus in de buffer bewaard moeten blijven, in seconden. Deze eigenschap kunt u gebruiken om het bufferen van gegevens in de pauzemodus te beperken. Zodra de waarde van NetStream.bufferLength
deze limiet heeft bereikt, wordt het opslaan in de buffer gestopt.
Als deze waarde niet is ingesteld, wordt bij elke pauze standaard de limiet 60 seconden gebruikt of twee keer de waarde van NetStream.bufferTime
, afhankelijk van de hoogste waarde.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get maxPauseBufferTime():Number
public function set maxPauseBufferTime(value:Number):void
Verwante API-elementen
multicastAvailabilitySendToAll | eigenschap |
multicastAvailabilitySendToAll:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft aan of peer-to-peermulticastfragmentbeschikbaarheidsberichten naar alle peers of naar één peer worden verzonden. De waarde TRUE geeft aan dat de berichten eenmaal per opgegeven interval naar alle peers worden verzonden. De waarde FALSE geeft aan dat de berichten eenmaal per opgegeven interval naar één peer worden verzonden. Het interval wordt bepaald door de eigenschap multicastAvailabilityUpdatePeriod
.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastAvailabilitySendToAll():Boolean
public function set multicastAvailabilitySendToAll(value:Boolean):void
Verwante API-elementen
multicastAvailabilityUpdatePeriod | eigenschap |
multicastAvailabilityUpdatePeriod:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft de interval in seconden weer tussen berichten die naar peers worden gestuurd om hen te laten weten, dat er op het lokale knooppunt nieuwe peer-to-peermulticastmediafragmenten beschikbaar zijn. Hogere waarden staan voor efficiëntere batchverwerkingen en minder besturingsoverhead, maar hierbij kan de kwaliteit aan de ontvangende kant afnemen doordat er minder tijd is om fragmenten op te halen voordat de fragmenten 'uit het venster' verdwijnen. Bij lagere waarden is er minder latentie en een betere kwaliteit, maar is er meer besturingsoverhead.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastAvailabilityUpdatePeriod():Number
public function set multicastAvailabilityUpdatePeriod(value:Number):void
Verwante API-elementen
multicastFetchPeriod | eigenschap |
multicastFetchPeriod:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Geeft voor RTMFP-verbindingen de tijd in seconden aan tussen het moment dat het lokale knooppunt voor het eerst te weten komt dat er een peer-to-peermulticastmediafragment beschikbaar is, en het moment dat het lokale knooppunt dit van een peer probeert op te halen. Met deze waarde kunt u het fragment proactief pushen naar het lokale knooppunt voordat een ophaalbewerking wordt uitgevoerd vanaf een peer. Verder kunt u aan meerdere peers tegelijk laten weten dat het fragment beschikbaar is, zodat de taakbelasting voor het ophalen kan worden verspreid over meerdere peers.
Grotere waarden staan voor een betere taakverdeling en gelijkwaardigheid in het peer-to-peernet, maar hierdoor wordt ook de beschikbare multicastWindowDuration
verkleind en de latentie vergroot. Bij kleinere waarden is er minder latentie bij ophaalbewerkingen, maar ook is er meer dubbele-gegevensontvangst en een slechtere taakverdeling met betrekking tot het peer-to-peernet.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastFetchPeriod():Number
public function set multicastFetchPeriod(value:Number):void
Verwante API-elementen
multicastInfo | eigenschap |
multicastInfo:NetStreamMulticastInfo
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft een NetStreamMulticastInfo-object weer, waarvan de eigenschappen statistieken bevatten over de kwaliteit van de service. Het object is een momentopname van de huidige staat.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastInfo():NetStreamMulticastInfo
Verwante API-elementen
multicastPushNeighborLimit | eigenschap |
multicastPushNeighborLimit:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft het maximumaantal peers aan, dat proactief multicastmedia presenteert.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastPushNeighborLimit():Number
public function set multicastPushNeighborLimit(value:Number):void
multicastRelayMarginDuration | eigenschap |
multicastRelayMarginDuration:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft in seconden aan, hoelang peer-to-peermulticastgegevens beschikbaar blijven om naar peers te verzenden die dit na een opgegeven tijdsduur aanvragen. De duur wordt aangegeven door de eigenschap multicastWindowDuration
.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastRelayMarginDuration():Number
public function set multicastRelayMarginDuration(value:Number):void
Verwante API-elementen
multicastWindowDuration | eigenschap |
multicastWindowDuration:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft in seconden de duur van het peer-to-peermulticastsamenstellingsvenster aan. Bij lagere waarden is er minder latentie, maar minder kwaliteit, omdat er onvoldoende tijd is om alle fragmenten op te halen. Omgekeerd geldt dat er meer kwaliteit is bij grotere waarden, omdat er meer tijd is om alle fragmenten op te halen. De latentie neemt echter wel toe.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get multicastWindowDuration():Number
public function set multicastWindowDuration(value:Number):void
Verwante API-elementen
nearNonce | eigenschap |
nearNonce:String
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Voor RTMFP- en RTMPE-verbindingen, een waarde die aanzienlijk is gekozen door het andere uiteinde van de stream en uniek voor deze verbinding. Deze waarde verschijnt aan het andere uiteinde van de stream als de waarde farNonce
ervan.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get nearNonce():String
objectEncoding | eigenschap |
objectEncoding:uint
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De objectcodering (AMF-versie) voor dit object NetStream. Het object NetStream neemt de waarde objectEncoding
over van het bijbehorende object NetConnection. Het is belangrijk dat u deze eigenschap begrijpt wanneer uw ActionScript 3.0 SWF-bestand moet communiceren met servers die vóór Flash Player 9 zijn uitgebracht. Zie de beschrijving van de eigenschap objectEncoding
in de klasse NetConnection.
De waarde van deze eigenschap wordt bepaald door het gegeven of de stream lokaal dan wel extern is. Lokale streams, waarbij null
werd doorgegeven aan de methode NetConnection.connect()
, retourneren de waarde van NetConnection.defaultObjectEncoding
. Externe streams, waarbij u verbinding maakt met een server, retourneren de objectcodering van de verbinding met de server.
Wanneer u deze eigenschap probeert te lezen terwijl u geen verbinding hebt, of wanneer u deze eigenschap probeert te wijzigen, genereert de toepassing een uitzondering.
Implementatie
public function get objectEncoding():uint
Verwante API-elementen
peerStreams | eigenschap |
soundTransform | eigenschap |
soundTransform:flash.media:SoundTransform
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Beheert geluid in dit object NetStream. Zie de klasse SoundTransform voor meer informatie.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Verwante API-elementen
time | eigenschap |
time:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De positie van de afspeelkop in seconden.
Flash Media Server Bij een abonnementstream het aantal seconden dat de stream al wordt afgespeeld. Bij een publicatiestream het aantal seconden dat de stream al wordt gepubliceerd. Dit getal is nauwkeurig tot op de duizendste decimaal; vermenigvuldig met 1000 voor het getal in milliseconden dat de stream al wordt afgespeeld.
Wanneer bij een abonnementstream de server stopt met het verzenden van gegevens maar de stream open blijft, wordt de waarde van de eigenschap time
niet meer opgehoogd. Wanneer de server weer gegevens gaat verzenden, wordt de waarde opgehoogd vanaf het punt waarop is gestopt met het verzenden van gegevens door de server.
De waarde van time
blijft oplopen wanneer de stream overschakelt van het ene afspeellijstelement naar het andere. Deze eigenschap wordt op 0 ingesteld wanneer NetStream.play()
wordt aangeroepen met reset
ingesteld op 1
oftrue
, of wanneer NetStream.close()
wordt aangeroepen.
Implementatie
public function get time():Number
Verwante API-elementen
useHardwareDecoder | eigenschap |
useHardwareDecoder:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3 |
Geeft aan of met hardware versnelde decodering moet worden gebruikt voor de stream.
Opmerking: u kunt deze eigenschap niet instellen tijdens het afspelen van video. U dient deze in te stellen voordat u NetStream.play()
aanroept.
De standaardwaarde is true.
Implementatie
public function get useHardwareDecoder():Boolean
public function set useHardwareDecoder(value:Boolean):void
Verwante API-elementen
useJitterBuffer | eigenschap |
useJitterBuffer:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11.3, AIR 3.3 |
Minimaliseer de vertraging voor live, niet-gebufferde streaming (bufferTime = 0). In plaats van een conservatief catchup-mechanisme op basis van push-technologie, worden de audioberichten in een aanpasbare jitter-buffer geplaatst. Wanneer audio wordt vereist door het luidsprekerapparaat, worden de berichten opgehaald vanuit de jitter-buffer, gedecodeerd en afgespeeld. Bij Speex en G.711 wordt deze pull-technologie altijd gebruikt, onafhankelijk van deze instellingen (useJitterBuffer retourneert de waarde true voor Speex/G.711). Wanneer codecs zijn ingeschakeld in de niet-gebufferde modus, gebruiken ze allemaal de jitter-buffertechnologie, zoals bijvoorbeeld Speex, G.711, Nellymoser, MP3 en AAC. Deze eigenschap heeft geen effect in de gebufferde modus (bufferTime > 0), zodat useJitterBuffer de waarde false retourneert.
Implementatie
public function get useJitterBuffer():Boolean
public function set useJitterBuffer(value:Boolean):void
videoReliable | eigenschap |
videoReliable:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft aan of video met volledige betrouwbaarheid is verzonden. Bij de waarde TRUE is alle video die over deze NetStream wordt verzonden volledig betrouwbaar. Bij de waarde FALSE is de verzonden video niet volledig betrouwbaar. De videostream wordt tijdelijk opnieuw verzonden en dan gestopt. Met de waarde FALSE kunt u de latentie verkleinen, maar dit gaat ten koste van de videokwaliteit.
Als u probeert om deze eigenschap in te stellen op FALSE voor een netwerkprotocol dat geen gedeeltelijke betrouwbaarheid ondersteunt, wordt de poging genegeerd en de eigenschap op TRUE ingesteld.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get videoReliable():Boolean
public function set videoReliable(value:Boolean):void
Verwante API-elementen
videoSampleAccess | eigenschap |
videoSampleAccess:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Voor RTMFP-verbindingen, geeft aan of peer-to-peerabonnees van deze NetStream de videostream mogen vastleggen. Bij de waarde FALSE worden machtigingsfouten weergegeven als de abonnee de videostream wil opnemen.
Opmerking: deze eigenschap wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Implementatie
public function get videoSampleAccess():Boolean
public function set videoSampleAccess(value:Boolean):void
Verwante API-elementen
videoStreamSettings | eigenschap |
videoStreamSettings:VideoStreamSettings
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11/ConnectAddin, AIR 3 |
Eigenschappen voor streamcompressie opgeven. Zie VideoStreamSettings
voor meer informatie. Als geen camera op uw systeem is aangesloten, wordt null geretourneerd.
Implementatie
public function get videoStreamSettings():VideoStreamSettings
public function set videoStreamSettings(value:VideoStreamSettings):void
Verwante API-elementen
NetStream | () | Constructor |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Maakt een stream die u kunt gebruiken voor het afspelen van mediabestanden en voor het verzenden van gegevens via een object NetConnection.
Het wordt als ongeldig beschouwd als de netStatus
-gebeurtenis van een Netstream-object niet wordt afgehandeld. Om fouten te voorkomen, registreert u een listener voor de netStatus
-gebeurtenis nadat u het Netstream-object maakt en voordat u de play()
-methode van het object aanroept.
connection:NetConnection — Een object NetConnection.
| |
peerID:String (default = "connectToFMS ") — Deze optionele parameter is beschikbaar in Flash Player 10 en hoger en kan worden gebruikt met RTMFP-verbindingen. (Als de waarde van de eigenschap NetConnection.protocol niet is ingesteld op rtmfp , wordt deze parameter genegeerd.) Gebruik een van de volgende waarden:
In de meeste gevallen kan een Als u deze parameter opneemt in uw constructorinstructie en de waarde |
Gegenereerde uitzondering
ArgumentError — De instantie NetConnection heeft geen verbinding.
|
Verwante API-elementen
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"
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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
) op een externe instantie van Flash Media Server die is opgegeven in de opdracht connect()
:
var my_video:Video = new Video(); addChild(my_video); var my_nc:NetConnection = new NetConnection(); my_nc.connect("rtmp://www.yourfmsserver.com/someappname"); var my_ns:NetStream = new NetStream(my_nc, NetStream.CONNECT_TO_FMS); my_video.attachNetStream(my_ns); my_ns.play(videoURL);
appendBytes | () | methode |
public function appendBytes(bytes:ByteArray):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Geeft een ByteArray in een NetStream door om te worden uitgespeeld. Roep deze methode aan voor een NetStream in de modus voor gegevensgeneratie. Als u de modus voor gegevensgeneratie wilt instellen voor een NetStream, roept u NetStream.play(null)
aan voor een NetStream die is gemaakt voor een NetConnection die een verbinding heeft met null
. Als deze methode appendBytes()
wordt aangeroepen voor een NetStream die zich niet in de modus voor gegevensgeneratie bevindt, treedt er een fout op en wordt een uitzondering gegenereerd.
Opmerking: deze methode wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
De byteparser kan een FLV-bestand met een header lezen. Nadat de header is geparseerd, verwacht appendBytes()
dat alle toekomstige aanroepen voortzettingen zijn van hetzelfde echte of virtuele bestand. Een andere header wordt niet verwacht, tenzij appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
wordt aangeroepen.
Een object NetStream heeft twee buffers: de FIFO van appendBytes()
naar de NetStream en de uitspeelbuffer. De FIFO is de reassemblagebuffer voor een gedeeltelijke FLV-tag en bevat slechts één onvolledige FLV-tag. Roept NetStream.seek()
aan om beide buffers leeg te maken. Nadat u seek()
hebt aangeroepen, roept u appendBytesAction()
aan om de tijdschaal te herstellen naar het begin van de tijdstempel van het volgende bijgevoegde bericht.
Elke keer dat appendBytes()
wordt aangeroepen, worden er bytes aan de FIFO toegevoegd totdat een FLV-tag volledig is. Wanneer een FLV-tag volledig is, wordt deze naar de uitspeelbuffer verplaatst. Bij het aanroepen van appendBytes()
kunnen meerdere FLV-tags worden geschreven. De eerste bytes voltooien een bestaande FLV-tag (die naar de uitspeelbuffer wordt verplaatst). Voltooide FLV-tags worden naar de uitspeelbuffer verplaatst. De resterende bytes die geen volledige FLV-tag vormen gaan naar de FIFO. Bytes in de FIFO worden voltooid door het aanroepen van een appendBytes()
of worden leeggemaakt door het aanroepen van appendBytesAction()
met het argument RESET_SEEK
of RESET_BEGIN
.
Opmerking: het kan zijn dat de byteparser pas in staat is om een aangeroepen appendBytes()
volledig te decoderen als een opvolgende appendBytes()
wordt aangeroepen.
Parameters
bytes:ByteArray |
Verwante API-elementen
appendBytesAction | () | methode |
public function appendBytesAction(netStreamAppendBytesAction:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Geeft een discontinuïteit van de tijdschaal aan, maakt de FIFO leeg en kondigt een bestandsheader of het begin van een FLV-tag aan bij de byteparser.
Opmerking: deze methode wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Roept NetStream.seek()
aan om de NetStream-buffers leeg te maken. De byteparser blijft in de modus voor leegmaken totdat u appendBytesAction()
aanroept en het argument RESET_BEGIN
of RESET_SEEK
doorgeeft. Leg de gebeurtenis "NetStream.Seek.Notify"
vast om appendBytesAction()
aan te roepen na een zoekopdracht. Een nieuwe bestandsheader kan ondersteuning bieden voor afspeellijsten of zoekopdrachten zonder NetStream.seek()
aan te roepen.
U kunt deze methode ook aanroepen om de byteteller voor de callback onSeekPoint()
te herstellen.
Parameters
netStreamAppendBytesAction:String |
Verwante API-elementen
attach | () | methode |
public function attach(connection:NetConnection):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Koppelt een stream aan een nieuw NetConnection-object. Roep deze methode op om een NetStream aan een nieuw NetConnection-object te verbinden, nadat er een verbinding geannuleerd en hersteld is. Flash Player en AIR gaan verder met streamen vanaf het afspeelpunt waarop de verbinding verloren is gegaan. U kunt deze methode ook gebruiken om taakverdeling te implementeren.
Deze methode vereist Flash Media Server versie 3.5.3 of later.
Om deze methode te gebruiken voor het implementeren van streamherstelling, leest u de Flash Media Server 3.5.3-documentatie.
Ga als volgt te werk om taakverdeling toe te passen met deze methode:
- Koppel een verbonden stream aan een NetConnection-object of een andere server.
- Nadat de stream aan de nieuwe verbinding is gekoppeld, roept u
NetConnection.close()
aan op de vorige verbinding om een gegevenslek te voorkomen. - Roep
NetStream.play2()
aan en stel de waarde vanNetStreamPlayOptions.transition
in op RESUME. Stel de overige NetStreamPlayOptions-eigenschappen in op de waarden die u gebruikte toen uNetStream.play()
ofNetStream.play2()
voor het eerst aanriep om de stream te starten.
Parameters
connection:NetConnection |
Verwante API-elementen
attachAudio | () | methode |
public function attachAudio(microphone:Microphone):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Koppelt een audiostream aan een NetStream-object vanuit een Microphone-object dat als de bron is doorgegeven. Deze methode is alleen beschikbaar voor de uitgever van de opgegeven stream.
Gebruik deze methode met Flash Media Server om live audio naar de server te verzenden. Roep deze methode aan vóór of nadat u de methode publish()
aanroept.
Stel de eigenschap Microphone.rate
zo in dat deze overeenkomt met de frequentie van het apparaat voor geluidsopname. Roep setSilenceLevel()
aan om de drempel voor het stilteniveau in te stellen. Als u de geluidseigenschappen (volume en pannen) van de audiostream wilt bepalen, gebruikt u de eigenschap 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")
Als u de audio wilt horen, roept u de methode NetStream.play()
aan en roept u DisplayObjectContainer.addChild()
aan om de audio te routeren naar een object op de weergavelijst.
Parameters
microphone:Microphone — De bron van de audiostream die moet worden verzonden.
|
Verwante API-elementen
attachCamera | () | methode |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Hiermee wordt het vastleggen van video via een camera gestart, of wordt het vastleggen gestopt wanneer theCamera
op null
is ingesteld. Deze methode is alleen beschikbaar voor de uitgever van de opgegeven stream.
Deze methode is bedoeld voor gebruik in combinatie met Flash Media Server. Zie de klassebeschrijving voor meer informatie.
Na het koppelen van de videobron moet u NetStream.publish()
aanroepen om het verzenden te starten. Abonnees die de video willen bekijken, moeten de methoden NetStream.play()
en Video.attachCamera()
aanroepen om de video in het werkgebied weer te geven.
Met snapshotMilliseconds
kunt u één momentopname verzenden (door de waarde 0 op te geven) van een reeks momentopnamen, of anders gezegd van een fotosequentie, door een positief getal op te geven waarmee een trailer van het opgegeven aantal milliseconden aan de videofeed wordt toegevoegd. Door de trailer wordt de weergavetijd van het videobericht verlengd. Door herhaaldelijk attachCamera()
aan te roepen met een positieve waarde voor snapshotMilliseconds
, wordt met het afwisselen van momentopnamen en trailers een fotosequentie gemaakt. U zou bijvoorbeeld één frame per dag kunnen vastleggen en dat aan een videobestand kunnen toevoegen. Wanneer een abonnee het bestand afspeelt, wordt elk frame gedurende het opgegeven aantal milliseconden weergegeven, waarna het volgende frame wordt weergegeven.
De parameter snapshotMilliseconds
heeft een andere functie dan de parameter fps
die u kunt instellen met Camera.setMode()
. Wanneer u snapshotMilliseconds
opgeeft, bepaalt u hoeveel tijd er tussen de opgenomen frames verstrijkt. Wanneer u fps
opgeeft met behulp van Camera.setMode()
, bepaalt u hoeveel tijd er verstrijkt gedurende het opnemen en afspelen.
Stel dat u elke 5 minuten een momentopname wilt maken tot een totaal van 100 momentopnamen. U kunt dat op twee manieren doen:
- U kunt om de vijf minuten en in totaal 100 keer een opdracht
NetStream.attachCamera(mijnCamera, 500)
geven. Het opnemen duurt dan in totaal 500 minuten, terwijl het resulterende bestand in 50 seconden wordt afgespeeld (100 frames met 500 milliseconden tussen de frames). - U kunt een opdracht
Camera.setMode()
geven met een waarde voorfps
van 1/300 (één per 300 seconden, ofwel elke 5 minuten) en vervolgens een opdrachtNetStream.attachCamera(source)
, waarmee de camera onafgebroken 500 minuten lang opnamen maakt. Het resulterende bestand wordt in 500 minuten afgespeeld (even lang als de tijd van de opname), waarbij elk frame 5 minuten lang wordt weergegeven.
Met beide technieken worden dezelfde 500 frames vastgelegd en beide zijn nuttig. De gekozen techniek hangt voornamelijk af van uw eisen voor afspelen. Zo zou u in het tweede geval de gehele tijd ook audio kunnen opnemen. Bovendien zouden beide bestanden ongeveer dezelfde grootte hebben.
Parameters
theCamera:Camera — De bron van de video-overdracht. Geldige waarden zijn een object Camera (voor het vastleggen van video) en null . Wanneer u null doorgeeft, stopt de toepassing met het vastleggen van video. Alle aanvullende meegestuurde parameters worden daarbij genegeerd.
| |
snapshotMilliseconds:int (default = -1 ) — Geeft op of de videostream doorlopend is, uit één enkel frame bestaat of uit een reeks afzonderlijke frames om een fotosequentie te maken.
|
close | () | methode |
public function close():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stopt het afspelen van alle gegevens van de stream, stelt de eigenschap time
in op 0 en maakt de stream beschikbaar voor alternatief gebruik. Met deze methode wordt ook de lokale kopie van een videobestand verwijderd dat is gedownload met HTTP. Hoewel de toepassing de lokale kopie van het gemaakte bestand verwijdert, is het mogelijk dat er nog een kopie in de cachemap bestaat. Wanneer u niet wilt dat het videobestand in cache of lokaal wordt opgeslagen, gebruikt u Flash Media Server.
Wanneer u Flash Media Server gebruikt, wordt deze methode expliciet aangeroepen wanneer u NetStream.play()
aanroept via een publicatiestream of NetStream.publish()
via een abonnementstream. Houd rekening met het volgende:
-
Wanneer
close()
via een publicatiestream wordt aangeroepen, stopt de stream met publiceren en kan de uitgever nu de stream voor een ander doel gebruiken. Abonnees ontvangen niets meer van hetgeen op de stream werd gepubliceerd omdat de stream gestopt is met publiceren. -
Wanneer
close()
via een abonnementstream wordt aangeroepen, stopt de stream met afspelen voor de abonnee en kan de abonnee de stream voor een ander doel gebruiken. Dit heeft geen invloed op andere abonnees. -
U kunt het afspelen door een abonnementstream stoppen, zonder de stream te sluiten of het type stream te veranderen, door gebruik te maken van
flash.net.NetStream.play(false)
.
Verwante API-elementen
dispose | () | methode |
public function dispose():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0 |
Geeft alle bronnen vrij die worden vastgehouden door het NetStream-object.
De methode dispose()
valt te vergelijken met de methode close
. Het grootste verschil tussen de twee methoden is dat dispose()
het geheugen dat wordt gebruikt voor weergave van het huidige videoframe vrijgeeft. Als dat frame op dat moment wordt weergegeven op het scherm, wordt het scherm blanco. De methode close()
leidt niet tot een blanco weergave, aangezien deze methode dit geheugen niet vrijgeeft.
onPeerConnect | () | methode |
public function onPeerConnect(subscriber:NetStream):Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Wordt geactiveerd wanneer een stream met publicatie naar gelijkwaardige items overeenkomt met een stream met abonnement op gelijkwaardige items. Voordat de abonnee met de uitgever wordt verbonden, moet u deze methode aanroepen zodat de ActionScript-code de toegang tot de publicatie naar gelijkwaardige items kan regelen. De volgende code is een voorbeeld van de wijze waarop u een functie callback voor deze methode kunt maken:
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Als een gelijkwaardige uitgever deze methode niet implementeert, mogen alle gelijkwaardige gebruikers alle gepubliceerde inhoud afspelen.
Parameters
subscriber:NetStream |
Boolean |
pause | () | methode |
public function pause():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pauzeert het afspelen van een videostream. Het aanroepen van deze methode heeft geen effect wanneer de video al ia gepauzeerd. Roep resume()
aan om het afspelen van de video te hervatten nadat deze is gepauzeerd. Roep togglePause()
aan om te wisselen tussen pauzeren en afspelen (eerst de video pauzeren en vervolgens het afspelen hervatten).
Vanaf Flash Player 9.0.115.0 wordt de buffer niet meer gewist wanneer NetStream.pause()
wordt aangeroepen. Dit gedrag wordt een 'slimme pauze' genoemd. Vóór Flash Player 9.0.115.0 wachtte Flash Player tot de buffer vol was alvorens het afspelen voort te zetten. Dit veroorzaakte dikwijls enige vertraging.
Opmerking: vanwege compatibiliteit met eerdere versies, wordt de gebeurtenis"NetStream.Buffer.Flush"
(zie de eigenschap NetStatusEvent.info
) nog steeds geactiveerd, alhoewel de buffer niet wordt verwijderd door de server.
Voor een enkele pauze, had de eigenschap NetStream.bufferLength
een beperking van oftewel 60 seconden of tweemaal de waarde van NetStream.bufferTime
, afhankelijk van welke waarde hoger was. Als bufferTime
bijvoorbeeld 20 seconden is, blijft Flash Player de buffer vullen totdat NetStream.bufferLength
de waarde heeft van 20*2 (40) of 60 - welke waarde het hoogste is. In dit geval wordt de buffer gevuld tot bufferLength
60 is. Als bufferTime
40 seconden is, blijft Flash Player de buffer vullen totdat bufferLength
de waarde heeft van 40*2 (80) of 60 - welke waarde het hoogste is. In dit geval wordt de buffer gevuld tot bufferLength
80 seconden is.
De eigenschap bufferLength
heeft ook een absolute limiet. Als een aanroep naar pause()
tot gevolg heeft dat bufferLength
meer dan 600 seconden is of de waarde krijgt van bufferTime
* 2 - welke waarde hoger is -, maakt Flash Player de buffer leeg en wordt bufferLength
weer ingesteld op 0. Als bufferTime
bijvoorbeeld 120 seconden is, maakt Flash Player de buffer leeg als bufferLength
600 seconden heeft bereikt. als bufferTime
360 seconden is, maakt Flash Player de buffer leeg als bufferLength
720 heeft bereikt.
Tip: U kunt NetStream.pause()
in code gebruiken om gegevens in de buffer op te slaan terwijl kijkers bijvoorbeeld naar reclame kijken, en de onderbreking weer opheffen wanneer de hoofdvideo start.
Verwante API-elementen
play | () | methode |
public function play(... arguments):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Speelt het mediabestand af vanuit een lokale directory of vanaf een webserver; speelt een mediabestand of een live stream van Flash Media Server af. Verzendt een object NetStatusEvent
om status- en foutberichten de rapporteren.
Raadpleeg de volgende bronnen voor informatie over ondersteunde codecs en bestandsindelingen:
- Documentatie bij Flash Media Server
- Informatie over ondersteuning van Flash Player voor high-definition H.264-video en AAC-audio
- Open specificatiedocumenten voor FLV/F4V
Workflow voor het afspelen van een bestand of live stream
- Maak een Video-object dat de video zal weergeven en roep
addChild()
aan om dit aan het werkgebied toe te voegen. Maak een object NetConnection en roep
NetConnection.connect()
aan.Als u een bestand in een lokale directory of op een webserver wilt afspelen, geeft u null door.
Als u een vastgelegd bestand of live stream wilt afspelen vanaf Flash Media Server, geeft u de URI van een Flash Media Server-toepassing door.
- Roep de methode
addEventListener()
van het NetConnection-object aan om te luisteren naar denetStatus
-gebeurtenis (NetStatusEvent.NET_STATUS
). - Maak voor
"NetConnection.Connect.Success"
een object NetStream en geef het object NetConnection door aan de constructor. - Roep de methode
attachNetStream()
van het Video-object aan en geef het NetStream-object door. Roep de methode
play()
van het NetStream-object aan.Als u een live stream wilt afspelen, geeft u de naam van de stream door aan de methode
NetStream.publish()
.Als u een vastgelegd bestand wilt afspelen, geeft u de bestandsnaam door.
Opmerking: volg altijd de aanbevolen procedure en voeg het Video-object toe aan het werkgebied. Voeg vervolgens het NetStream-object toe en roep de methode play()
van het NetStream-object aan.
Modus voor gegevensgeneratie inschakelen
Roep play(null)
aan om de modus voor gegevensgeneratie in te schakelen. In deze modus roept u de methode appendBytes()
aan om gegevens bij de NetStream te bezorgen. Gebruik de modus voor gegevensgeneratie om inhoud van de Adobe HTTP Dynamic Streaming Origin Module op een Apache HTTP-server via HTTP te streamen. Bij dynamische streaming via HTTP kunnen clients snel naar een willekeurig punt in een bestand zoeken. Het OSMF (Open Source Media Framework) biedt ondersteuning voor dynamische streaming via HTTP voor VOD- (Video on Demand ofwel video op verzoek) en livestreams. Download de OSMF-bron voor meer informatie over het gebruik van de modus voor gegevensgeneratie voor een NetStream. Ga naar het onderwerp over dynamische streaming via HTTP voor meer informatie hierover.
Wanneer u deze methode zonder Flash Media Server gebruikt, moet u enkele beveiligingsoverwegingen in acht nemen. Een bestand in de sandbox Lokaal-vertrouwd of Lokaal-met-netwerk kan een videobestand uit de externe sandbox laden en afspelen, maar heeft alleen toegang tot de gegevens van dat externe bestand met toestemming via een bestand met URL-beleid. Bovendien kunt u voor Flash Player en hoger voorkomen dat een SWF-bestand dat in Flash Player wordt afgespeeld, deze methode gebruikt door de parameter allowNetworking
in te stellen van de tags object
en embed
op de HTML-pagina die de SWF-inhoud bevat. Lees voor meer informatie over beveiliging het onderwerp Security in het Flash Player Developer Center.
Parameters
... arguments — Een lokaal bestand afspelen
De locatie van een mediabestand. Het argument kan een string zijn, de eigenschap Een bestand vanaf Flash Media Server afspelen
U kunt de bestandsindelingen afspelen die worden beschreven in de volgende tabel. De syntaxis verschilt per bestandsindeling.
Modus voor gegevensgeneratie inschakelen
Als u de modus voor gegevensgeneratie wilt inschakelen, geeft u de waarde Speciale overwegingen voor H.264-video in AIR 3.0 for iOS In geval van H.264-video accepteren de iOS-API's voor het afspelen van video alleen een URL naar een bestand of stream. U kunt geen buffer doorgeven met H264-videogegevens die moeten worden gedecodeerd. Geef het desbetreffende argument, afhankelijk van uw videobron, als volgt door aan
|
Gebeurtenissen
status: — Wordt verzonden tijdens een poging om inhoud af te spelen die met DRM is gecodeerd. De waarde van de code -eigenschap is "DRM.encryptedFLV" .
|
Gegenereerde uitzondering
SecurityError — Lokale niet-vertrouwde SWF-bestanden kunnen niet communiceren met internet. U kunt deze beperking omzeilen door dit SWF-bestand opnieuw te classificeren als lokaal-met-netwerk of vertrouwd.
| |
ArgumentError — Er moet ten minste één parameter worden opgegeven.
| |
Error — Het object NetStream is ongeldig. Dit is mogelijk het gevolg van een mislukte NetConnection.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
play()
eveneens een bestandsextensie opgeven.
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 | () | methode |
public function play2(param:NetStreamPlayOptions):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Schakelt naadloos tussen bestanden met meerdere bitratio's en staat een NetStream toe om te hervatten wanneer een verbinding wordt geannuleerd en opnieuw wordt aangesloten.
Deze methode is een verbeterde versie van NetStream.play()
. De methode play2()
begint met het afspelen van een mediabestand of plaatst mediabestanden in een wachtrij om een afspeellijst te maken, net als de methode play()
. Indien gebruikt met Flash Media Server kan hiermee ook een aanvraag aan de server gedaan worden om over te schakelen naar een ander mediabestand. De overgang verloopt naadloos in clienttoepassing. De volgende functies gebruiken play2()
-streamschakeling:
Dynamic streaming
Met dynamische streaming (ondersteund in Flash Media Server 3.5 en hoger) kunt u een stream voorzien die met verschillende bitsnelheden is gecodeerd. Als de netwerkvoorwaarden van een kijker wijzigen, ontvangen ze de bitsnelheid die de beste kijkervaring biedt. Gebruik de klasse NetStreamInfo
om netwerkomstandigheden te controleren en naar een andere stream over te schakelen op basis van de gegevens. U kunt ook naar een andere stream overschakelen voor clients met verschillende mogelijkheden. Zie "Dynamic streaming" in de "Adobe Flash Media Server Developer Guide" voor meer informatie.
Adobe heeft een aangepaste ActionScript-klasse met de naam DynamicStream gemaakt die een uitbreiding is op de klasse NetStream. Met de klasse DynamicStream kunt u dynamische streaming in een toepassing implementeren in plaats van zelf code te schrijven om de netwerkomstandigheden te detecteren. Gebruik de klasse DynamicStream als referentie-implementatie, ook als u ervoor kiest zelf code voor dynamische streaming te schrijven. Download de klasse en de klassedocumentatie op de pagina Flash Media Server tools and downloads.
Stream herstellen
Met stream herstellen (ondersteund in Flash Media Server 3.5.3 en hoger) kunnen gebruikers zonder onderbreking van media genieten, zelfs als ze de verbinding verliezen. De media gebruikt de buffer om af te spelen terwijl uw ActionScript-logica opnieuw verbinding maakt met Flash Media Server. Nadat de verbinding is hersteld, roept u NetStream.attach()
op om zo hetzelfde NetStream-object met de nieuwe NetConnection te gebruiken. Gebruik de NetStream.attach()
-, NetStreamPlayTransitions.RESUME
- en NetStreamPlayTrasitions.APPEND_AND_WAIT
-API's om opnieuw verbinding met een stream te maken. Zie de Flash Media Server 3.5.3-documentatie voor meer informatie.
Parameters
param:NetStreamPlayOptions |
Verwante API-elementen
preloadEmbeddedData | () | methode |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.5, Flash Lite 4 |
Hiermee worden DRM-metagegevens uit een lokaal opgeslagen mediabestand opgehaald.
Voer preloadEmbeddedMetaData()
uit als eerste stap bij het downloaden en in de cache plaatsen van de DRM-vouchers die nodig zijn om offline afspelen. Wanneer ingesloten DRM-metagegevens worden aangetroffen in een mediabestand, wordt een object DRMContentData doorgegeven aan de functie onDRMContentData
van de NetStream-client. Dit object DRMContentData bevat de informatie die nodig is om de voucher op te halen die is vereist om de inhoud af te spelen. Geef het object DRMContentDataObject door aan de DRMManager-methode loadVoucher()
om de voucher te downloaden.
U voert onder andere de volgende stappen uit om een DRM-voucher vooraf te laden:
-
Maak een nieuw object NetStream om de metagegevens vooraf te laden.
- Wijs een callbackfunctie toe aan de eigenschap
onDRMContentData
van de NetStream-client
. - Maak een nieuw object NetStreamPlayOptions en stel de eigenschap
streamName
van dat object in op de URL-tekenreeks van het lokale videobestand. - Roep
preloadEmbeddedMetadata()
aan en geef daarbij het object NetStreamPlayOptions door. - Roep als reactie op de
onDRMContentData
-callback de DRMManager-methodeloadVoucher()
aan en geef het object DRMContentData door. Als de eigenschapauthenticationMethod
van het object DRMContentData de waardeuserNameAndPassWord
heeft, moet u de gebruiker op de mediarechtenserver verifiëren voordat u de voucher laadt. - Sluit de NetStream die wordt gebruikt voor het vooraf laden.
Opmerking: Als u hetzelfde NetStream-object wilt gebruiken om metagegevens vooraf te laden en om inhoud af te spelen, moet u met het afspelen wachten totdat de laadbewerking de aanroep naar onPlayStatus
heeft gegenereerd.
Gedownloade vouchers worden opgeslagen in een lokale cache. Bij het online afspelen van inhoud worden ook vouchers gedownload en in de cache geplaatst. Wanneer een met DRM beveiligd inhoudsbestand wordt weergegeven, wordt automatisch een voucher opgehaald uit de lokale cache. Gebruik de DRMManager om de vouchercache te beheren.
Opmerkingen: Het vooraf laden van DRM-metagegevens via HTTP-, HTTPS- of RTMP-verbindingen wordt niet ondersteund. U kunt alleen metagegevens uit bestanden die zijn opgeslagen in het bestandssysteem vooraf laden.
Parameters
param:NetStreamPlayOptions — NetStreamPlayOptions waarin de opties worden beschreven die worden gebruikt tijdens het verwerken van het inhoudsbestand.
|
Verwante API-elementen
publish | () | methode |
public function publish(name:String = null, type:String = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Verzendt streaming audio, video en gegevensberichten van een client naar Flash Media Server. De stream kan optioneel tijdens het verzenden worden opgenomen. Deze methode verzendt een NetStatusEvent-object met informatie over de stream. Voordat u NetStream.publish()
aanroept, legt u de gebeurtenis "NetConnection.Connect.Success"
vast om te controleren of de toepassing daadwerkelijk verbinding met Flash Media Server heeft.
Bij het publiceren kunt u bestanden in FLV- of FLV4-indeling vastleggen. Als u een bestand vastlegt in de FV4-indeling, moet u een hulpprogramma gebruiken als u het bestand in een andere toepassing wilt bewerken of afspelen. Als u het hulpprogramma wilt downloaden, gaat u naar www.adobe.com/go/fms_tools_nl.
Opmerking: gebruik deze methode niet voor het afspelen van streams. Als u een stream wilt afspelen, roept u de methode NetStream.play()
aan.
Workflow voor het publiceren van streams
- Maak een object NetConnection en roep
NetConnection.connect()
aan. - Roep
NetConnection.addEventListener()
aan om te luisteren naar gebeurtenissen van het type NetStatusEvent. - Maak voor de gebeurtenis
"NetConnection.Connect.Success"
een object NetStream en geef het object NetConnection door aan de constructor. - Als u audio en video wilt vastleggen, kunt u de methoden
NetStream.attachAudio()
enNetStream.attachCamera()
aanroepen. - Als u een stream wilt publiceren, roept u de methode
NetStream.publish()
aan. U kunt de gegevens ook tijdens het publiceren opnemen, zodat gebruikers deze gegevens later kunnen afspelen.
Opmerking: een NetStream kan een stream publiceren of een stream afspelen, maar niet allebei. Als u een stream wilt publiceren en het afspelen op de server wilt bekijken, maakt u twee objecten NetStream. Via één object NetConnection kunt u meerdere objecten NetStream verzenden.
Wanneer Flash Media Server een stream vastlegt, wordt een bestand gemaakt. De server maakt standaard een directory waarbij de naam van de toepassingsinstantie wordt doorgegeven aan NetConnection.connect()
, en het bestand wordt in de directory opgeslagen. Met de volgende code wordt bijvoorbeeld verbinding gemaakt met de toepassing 'lectureseries' en wordt een stream met de naam 'lecture' vastgelegd. Het bestand 'lecture.flv' wordt opgenomen in de directory applications/lectureseries/streams/_definst_:
var nc:NetConnection = new NetConnection(); nc.connect("rtmp://fms.example.com/lectureseries"); nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); function netStatusHandler(event:NetStatusEvent):void { if (event.info.code == "NetConnection.Connect.Success") { var ns:NetStream = new NetStream(nc); ns.publish("lecture", "record"); } }
In het volgende voorbeeld wordt verbinding gemaakt met een instantie 'monday' van dezelfde toepassing. Het bestand 'lecture.flv' wordt opgenomen in de map /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"); } }
Parameters
name:String (default = null ) — Een tekenreeks die de stream identificeert. Clients met een abonnement op deze stream moeten diezelfde naam doorgeven bij het aanroepen van NetStream.play() . Neem na de naam van de stream geen '/' op. Gebruik bijvoorbeeld niet de streamnaam bolero/ .
U kunt bestanden opnemen met de indelingen die in de volgende tabel worden beschreven. (U kunt
| |||||||||||||
type:String (default = null ) — Een tekenreeks die aangeeft hoe de stream moet worden gepubliceerd. Geldige waarden zijn "record ", "append ", "appendWithGap " en "live ". De standaardwaarde is live .
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
Om dit voorbeeld uit te voeren, moet uw camera op uw computer aangesloten zijn. U moet ook een Button-component en een Label-component aan de Library toevoegen.
In de toepassing is een knop die pas een stream publiceert (die deze naar Flash Media Server verstuurd) nadat de toepassing verbinding met de server heeft gemaakt. De toepassing speelt de stream pas vanaf de server af, nadat de stream is gepubliceerd. Het NetStatusEvent
retourneert een info
-object met een code
eigenschap die deze gevallen definieert. De netStatusHandler
-functie past deze gebeurtenissen voor de klassen NetConnection en NetStream toe.
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 | () | methode |
public function receiveAudio(flag:Boolean):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Geeft op of binnenkomende audio op de stream wordt afgespeeld. Deze methode is alleen beschikbaar voor clients die zijn geabonneerd op de opgegeven stream. De methode is niet beschikbaar voor de uitgever van de stream. Roep deze methode aan vóór of nadat u de methode NetStream.play()
hebt aangeroepen. Als u deze methode bijvoorbeeld koppelt aan een knop, staat u toe dat gebruikers het volume van de audio kunnen dempen of verhogen. Gebruik deze methode alleen bij unicast-streams die worden afgespeeld vanuit Flash Media Server. Deze methode werkt niet bij RTMFP-multicast-streams of wanneer u de methode NetStream.appendBytes()
gebruikt.
Parameters
flag:Boolean — Geeft op of binnenkomende audio op de stream wordt afgespeeld (true ) of niet (false ). De standaardwaarde is true . Als de opgegeven stream alleen audiogegevens bevat, stopt NetStream.time met de incrementele verhoging wanneer u false doorgeeft.
|
receiveVideo | () | methode |
public function receiveVideo(flag:Boolean):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt opgegeven of binnenkomende video op de stream wordt afgespeeld. Deze methode is alleen beschikbaar voor clients die zijn geabonneerd op de opgegeven stream. De methode is niet beschikbaar voor de uitgever van de stream. Roep deze methode aan vóór of nadat u de methode NetStream.play()
hebt aangeroepen. Als u deze methode bijvoorbeeld koppelt aan een knop, staat u toe dat gebruikers de video kunnen weergeven en verbergen. Gebruik deze methode alleen bij unicast-streams die worden afgespeeld vanuit Flash Media Server. Deze methode werkt niet bij RTMFP-multicast-streams of wanneer u de methode NetStream.appendBytes()
gebruikt.
Parameters
flag:Boolean — Geeft op of binnenkomende video op deze stream wordt afgespeeld (true ) of niet (false ). De standaardwaarde is true . Als de opgegeven stream alleen videogegevens bevat, stopt NetStream.time met de incrementele verhoging wanneer u false doorgeeft.
|
receiveVideoFPS | () | methode |
public function receiveVideoFPS(FPS:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bepaalt de framesnelheid voor inkomende video. Deze methode is alleen beschikbaar voor clients die zijn geabonneerd op de opgegeven stream. De methode is niet beschikbaar voor de uitgever van de stream. Roep deze methode aan vóór of nadat u de methode NetStream.play()
hebt aangeroepen. U kunt deze methode bijvoorbeeld aanroepen als u wilt toestaan dat gebruikers de framesnelheid van de video kunnen instellen. Gebruik NetStream.currentFPS
om de huidige framesnelheid te bepalen. Als u geen video meer wilt ontvangen, geeft u 0
door.
Als u een waarde aan de parameter FPS doorgeeft om de framesnelheid van de video te beperken, probeert Flash Media Server de framesnelheid te verlagen met behoud van de integriteit van de video. Tussen elke twee hoofdframes verzendt de server het minimale aantal frames dat nodig is om te voldoen aan de gewenste snelheid. Merk op dat I-frames (tussenliggende frames) aansluitend moeten worden verzonden om te voorkomen dat de video beschadigd raakt. Het gewenste aantal frames wordt dus onmiddellijk en direct na een sleutelframe verzonden. Omdat de frames niet gelijkmatig zijn verdeeld, lijkt de beweging vloeiend te verlopen in segmenten die met vakjes worden gemarkeerd.
Gebruik deze methode alleen bij unicast-streams die worden afgespeeld vanuit Flash Media Server. Deze methode werkt niet bij RTMFP-multicast-streams of wanneer u de methode NetStream.appendBytes()
gebruikt.
Parameters
FPS:Number — Bepaalt de framesnelheid per seconde waarmee inkomende video wordt afgespeeld.
|
resetDRMVouchers | () | methode |
public static function resetDRMVouchers():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 11.8, Flash Lite 4 |
In AIR-toepassingen worden hiermee alle lokaal in de cache geplaatste vouchergegevens voor Digital Rights Management (DRM) verwijderd. Voor browsergebaseerde toepassingen is dit alleen beschikbaar bij 3322 fouten en gedraagt dit zich zoals het deelvenster Instellingen voor het afspelen van beveiligde inhoud.
De toepassing moet alle vereiste vouchers opnieuw vanaf de mediarechtenserver downloaden, zodat de gebruiker toegang kan krijgen tot beveiligde inhoud. Het aanroepen van deze functie komt overeen met het aanroepen van de functie resetDRMVouchers()
van het object DRMManager.
Gegenereerde uitzondering
IOError — De vouchergegevens kunnen niet worden verwijderd.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
NetStream.resetDRMVouchers();
resume | () | methode |
public function resume():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hervat het afspelen van een gepauzeerde videostream. Wanneer de video al wordt afgespeeld, heeft het aanroepen van deze methode geen effect.
Verwante API-elementen
seek | () | methode |
public function seek(offset:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zoekt het hoofdframe (ook wel I-frame genoemd) dat zich het dichtst bij de opgegeven locatie bevindt. Het hoofdframe wordt bij een offset geplaatst, in seconden, vanaf het begin van de stream.
Videostreams zijn meestal gecodeerd met twee typen frames: hoofdframes (I-frames) en P-frames. Een hoofdframe bevat een gehele afbeelding, terwijl een P-frame een tussenframe is dat aanvullende video-informatie biedt tussen hoofdframes. Een videoframe bevat gewoonlijk om de 10 tot 50 frames een hoofdframe.
Flash Media Server heeft verschillende types zoekgedrag: geavanceerd zoeken en slim zoeken.
Geavanceerd zoeken
Standaard is geavanceerd zoeken ingeschakeld. Om geavanceerd zoeken uit te schakelen, stelt u op Flash Media Server het EnhancedSeek
-element in het Application.xml
-configuratiebestand in op false
.
Wanneer geavanceerd zoeken is ingeschakeld, genereert de server een nieuw hoofdframe bij offset
, gebaseerd op het vorige hoofdframe en eventuele tussenliggende P-frames. Het genereren van hoofdframes zorgt echter voor een hoge verwerkingsbelasting op de server en kan resulteren in vervorming in het gegenereerde hoofdframe. Wanneer de video-codec On2 is, wordt het hoofdframe voorafgaand aan het zoekpunt en eventuele P-frames tussen het hoofdframe en het zoekpunt naar de client verzonden.
Als geavanceerd zoeken uitgeschakeld is, start de server met streamen vanaf het dichtstbijzijnde hoofdframe. Stel dat een video hoofdframes heeft bij 0 seconden en 10 seconden. Door een zoekactie tot 4 seconden wordt het afspelen bij 4 seconden gestart aan de hand van het hoofdframe bij 0 seconden. De video blijft stilstaan totdat het volgende hoofdframe bij 10 seconden wordt bereikt. Voor een betere zoekfunctionaliteit moet u het hoofdframe-interval verkleinen. In de normale zoekmodus kunt u de video niet starten bij een punt tussen de hoofdframes.
Slim zoeken
Om slim zoeken in te schakelen, stelt u NetStream.inBufferSeek
in op true
.
Met slim zoeken kan Flash Player zoeken binnen een bestaande achterwaartse en voorwaartse buffer. Wanneer slim zoeken uitgeschakeld is, maakt Flash Player elke keer wanneer seek()
opgeroepen wordt, de buffer leeg en vraagt deze gegevens van de server op. Zie NetStream.inBufferSeek
voor meer informatie.
Zoeken in de modus voor gegevensgeneratie
Als u seek()
aanroept voor een NetStream die zich in de modus voor gegevensgeneratie bevindt, worden alle bytes die vervolgens worden doorgegeven aan appendBytes()
genegeerd (ze worden niet in de buffer geplaatst, niet verzameld in de FIFO voor gedeeltelijke berichten en niet geparseerd voor zoekpunten) totdat u appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
of appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)
aanroept om de parser opnieuw in te stellen. Zie NetStream.play()
voor informatie over de modus voor gegevensgeneratie.
Parameters
offset:Number — De tijdwaarde (bij benadering) in seconden waarnaar de afspeelkop in een videobestand moet worden verplaatst. Wanneer Flash Media Server wordt gebruikt en <EnhancedSeek> op true is ingesteld in het configuratiebestand Application.xml (wat standaard het geval is), genereert de server een hoofdframe bij offset .
|
Verwante API-elementen
send | () | methode |
public function send(handlerName:String, ... arguments):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Hiermee wordt een bericht over de gepubliceerde stream naar alle geabonneerde clients verzonden. Deze methode is alleen beschikbaar voor de uitgever van de opgegeven stream. Deze methode kan alleen worden gebruikt met Flash Media Server. Maak een handler voor het object NetStream
om dit bericht te verwerken en erop te reageren, bijvoorbeeld ns.HandlerName
.
Flash Player of AIR past geen serienummering toe op methoden of de bijbehorende gegevens, objectprototypevariabelen of niet-opsombare variabelen. Voor weergaveobjecten serialiseert Flash Player of AIR het pad, maar niet de gegevens.
U kunt de methode send()
aanroepen om gegevenshoofdframes toe te voegen aan een livestream die naar Flash Media Server wordt gepubliceerd. Een gegevenshoofdframe is een bericht dat een uitgever aan een live stream toevoegt. Gegevenshoofdframes worden met name gebruikt om metagegevens aan een live stream toe te voegen voordat gegevens voor de stream worden vastgelegd via camera en microfoon. Een uitgever kan een gegevenshoofdframe op elk moment toevoegen terwijl de live stream wordt gepubliceerd. De gegevenshoofdframe wordt opgeslagen in het geheugen van de server zolang de uitgever met de server is verbonden.
Clients die op de live stream zijn geabonneerd voordat een gegevenshoofdframe wordt toegevoegd, ontvangen de hoofdframe zodra deze is toegevoegd. Clients die zich op een live stream abonneren nadat de gegevenshoofdframe is toegevoegd, ontvangen het hoofdframe wanneer zij zich abonneren.
U kunt een hoofdframe met metagegevens toevoegen aan een live stream die naar Flash Media Server wordt verzonden door @setDataFrame
als de handlernaam te gebruiken, gevolgd door twee aanvullende argumenten, bijvoorbeeld:
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
Het argument @setDataFrame
verwijst naar een speciale handler die standaard in Flash Media Server is opgenomen. Het argument onMetaData
is de naam van een callback-functie in uw clienttoepassing die luistert naar de gebeurtenis onMetaData
en de metagegevens ophaalt. Het derde item, metaData
, is een instantie vanObject
of Array
met eigenschappen die de metagegevenswaarden definiëren.
Gebruik @clearDataFrame
om een hoofdframe met metagegevens te wissen dat al in de stream is ingesteld:
ns.send("@clearDataFrame", "onMetaData");
Parameters
handlerName:String — Het te verzenden bericht. Tevens de naam van de ActionScript-handler die het bericht ontvangt. De naam van de handler kan slechts één niveau diep zijn genest (en kan dus niet de vorm bovenliggend/onderliggend hebben) en is relatief ten opzichte van het streamobject. Gebruik geen gereserveerde term voor de naam van een handler. Wanneer u bijvoorbeeld close als handlernaam gebruikt, werkt de methode niet. Met Flash Media Server kunt u @setDataFrame gebruiken om een hoofdframe van metagegevens aan een live stream toe te voegen, of @clearDataFrame om een hoofdframe te verwijderen.
| |
... arguments — Optionele argumenten die van elk mogelijk type kunnen zijn. De argumenten hebben een serienummer en worden verzonden via de verbinding. De ontvangende handler ontvangt de argumenten in dezelfde volgorde. Wanneer een parameter een circulair object is (bijvoorbeeld een gekoppelde lijst met kringverwijzingen) worden de verwijzingen op de juiste manier verwerkt door de serienummering. Wanneer bij gebruik van Flash Media Server @setDataFrame het eerste argument is, gebruikt u onMetaData als het tweede argument. Voor het derde argument geeft u een instantie Object of Array door waarvoor de metagegevens als eigenschappen zijn ingesteld. Raadpleeg de Flash Media Server Developer Guide voor een lijst met voorgestelde eigenschapsnamen. Wanneer u @clearDataFrame als het eerste argument gebruikt, gebruikt u onMetaData als het tweede argument en gebruikt u geen derde argument.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
NetStream
gemaakt. Het ene object wordt gebruikt om een live stream op de server te publiceren en het andere object abonneert zich op de stream.
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.media.Video; import flash.utils.setTimeout; public class TestExample extends Sprite { var nc:NetConnection = new NetConnection(); var ns1:NetStream; var ns2:NetStream; var vid:Video = new Video(300,300); var obj:Object = new Object(); public function TestExample() { nc.objectEncoding = 0; nc.addEventListener("netStatus", onNCStatus); nc.connect("rtmp://localhost/FlashVideoApp"); addChild(vid); } function onNCStatus(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": trace("You've connected successfully"); ns1 = new NetStream(nc); ns2 = new NetStream(nc); ns1.client = new CustomClient(); ns1.publish("dummy", "live"); ns2.client = new CustomClient(); vid.attachNetStream(ns2); ns2.play("dummy"); setTimeout(sendHello, 3000); break; case "NetStream.Publish.BadName": trace("Please check the name of the publishing stream" ); break; } } function sendHello():void { ns1.send("myFunction", "hello"); } } } class CustomClient { public function myFunction(event:String):void { trace(event); } }
private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Publish.Start": var metaData:Object = new Object(); metaData.title = "myStream"; metaData.width = 400; metaData.height = 200; ns.send("@setDataFrame", "onMetaData", metaData); ns.attachCamera( Camera.getCamera() ); ns.attachAudio( Microphone.getMicrophone() ); } }
onMetaData
definiëren. De gebeurtenishandler onMetaData
wordt niet geregistreerd met addEventListener()
, maar is een callback-functie met de naam onMetaData
, bijvoorbeeld:
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 | () | methode |
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Lite 4 |
Stelt de DRM-verificatiereferenties in die nodig zijn om de onderliggende gecodeerde inhoud weer te geven.
De methode setDRMAuthenticationCredentials()
moet referenties opgeven die overeenkomen met referenties die bekend zijn bij en geaccepteerd zijn door de contentprovider of proxyserver. Het zijn dezelfde referenties als die de gebruiker opgeeft om toestemming te krijgen om de inhoud te bekijken.
Parameters
userName:String — Een geldige gebruikersnaam als referentie.
| |
password:String — Het wachtwoord als referentie, die overeenkomt met de opgegeven gebruikersnaam.
| |
type:String — Een tekenreeks die bepaalt welk type verificatiereferenties worden opgegeven. Geldige waarden zijn drm en proxy . De standaardwaarde is drm .
|
Verwante API-elementen
step | () | methode |
public function step(frames:int):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Gaat het opgegeven aantal frames vooruit of achteruit, afhankelijk van het frame dat op dat moment wordt weergegeven. Geef een positief getal op voor een stap vooruit en een negatief getal voor een stap achteruit. Roep deze methode op om een correcte functionaliteit voor snel vooruit spoelen of terugspoelen te maken.
Opmerking: deze methode wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Deze methode is alleen beschikbaar wanneer gegevens vanaf Flash Media Server 3.5.3 of hoger wordt gestreamd en als NetStream.inBufferSeek
true
is. Het doelframe moet zich ook in de buffer bevinden. Stel dat frame nummer 120 momenteel wordt weergegeven en u geeft de waarde 1000 op, dan mislukt deze methode als frame nummer 1120 niet is opgenomen in de buffer.
Deze methode is bedoeld voor gebruik met de methoden pause()
of togglePause()
. Als u 10 frames voor of achterwaards gaat tijdens het afspelen zonder pauzeren, kunnen de stappen niet duidelijk zijn of eruit zien als een glitch. Dit is ook het geval als u pause()
oproept of togglePause
van de audio wordt onderdrukt.
Als de aanroep aan NetStream.step()
succesvol is, wordt een NetStatusEvent verzonden met de waarde NetStream.Step.Notify voor de eigenschap code
van het informatieobject.
Parameters
frames:int |
Verwante API-elementen
togglePause | () | methode |
public function togglePause():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Pauzeert of hervat het afspelen van een stream. De eerste keer dat u deze methode aanroept, wordt het afspelen gepauzeerd. De volgende keer wordt het afspelen hervat. Met deze methode kunt u gebruikers het afspelen laten pauzeren of hervatten door op een knop te klikken.
Verwante API-elementen
asyncError | Gebeurtenis |
flash.events.AsyncErrorEvent
eigenschap AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer een uitzondering asynchroon wordt gegenereerd, dat wil zeggen, vanuit native asynchrone code. Deze gebeurtenis wordt verzonden wanneer een server een methode op de client aanroept die niet is gedefinieerd.
De constanteAsyncErrorEvent.ASYNC_ERROR
definieert de waarde van de eigenschap type
van een gebeurtenisobject asyncError
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het object dat de gebeurtenis verzendt. |
error | De fout die de gebeurtenis heeft geactiveerd. |
Verwante API-elementen
drmAuthenticate | Gebeurtenis |
flash.events.DRMAuthenticateEvent
eigenschap DRMAuthenticateEvent.type =
flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Lite 4 |
Wordt verzonden wanneer een NetStream-object met DRM-gecodeerde inhoud (digital rights management) probeert af te spelen waarvoor ter verificatie gebruikersreferenties nodig zijn.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Gebruik de methode setDRMAuthenticationCredentials()
van het NetStream-object om de gebruiker te verifiëren. Als gebruikersverificatie is mislukt, probeert de toepassing de verificatie opnieuw en wordt een nieuwe DRMAuthenticateEvent-gebeurtenis voor het NetStream-object verzonden.
DRMAuthenticateEvent.DRM_AUTHENTICATE
bevat de waarde van de eigenschap type
van een DRMAuthenticateEvent-object.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
authenticationType | Geeft aan of de gegeven referenties bestemd zijn voor verificatie met het FMRMS (Flash Media Rights Management Server) of een proxyserver. |
bubbles | false |
cancelable | false er is geen standaardgedrag om te annuleren. |
header | De header van het gecodeerde inhoudsbestand, verstrekt door de server. |
netstream | Het NetStream-object dat deze gebeurtenis heeft gestart. |
passwordPrompt | Een vraag naar een wachtwoordreferentie, verstrekt door de server. |
target | Het NetStream-object. |
urlPrompt | Een vraag naar een URL om weer te geven, verstrekt door de server. |
usernamePrompt | Een vraag naar een gebruikersnaamreferentie, verstrekt door de server. |
Verwante API-elementen
drmError | Gebeurtenis |
flash.events.DRMErrorEvent
eigenschap DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Wordt verzonden wanneer een NetStream-object, dat een met DRM (Digital Rights Management) gecodeerd bestand probeert af te spelen, een DRM-fout detecteert. Er wordt bijvoorbeeld een DRMErrorEvent-object verzonden wanneer de gebruikersverificatie mislukt. Dit kan komen omdat de gebruiker geen rechten heeft gekocht om de inhoud te bekijken of omdat de contentprovider de weergavetoepassing niet ondersteunt.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
De constanteDRMErrorEvent.DRM_ERROR
definieert de waarde van de eigenschap type
van een drmError
-gebeurtenisobject.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
errorID | Een numerieke foutcode die aan het probleem is toegewezen. |
subErrorID | Een foutcode die gedetailleerdere informatie geeft over het onderliggende probleem. |
target | Het NetStream-object. |
Verwante API-elementen
drmStatus | Gebeurtenis |
flash.events.DRMStatusEvent
eigenschap DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Wordt verzonden wanneer de met DRM (digital rights management) gecodeerde inhoud wordt afgespeeld (nadat de gebruiker is geverifieerd en is gemachtigd om de inhoud af te spelen).
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Het DRMStatusEvent-object bevat informatie die betrekking heeft op de voucher. Hierin staat bijvoorbeeld of de inhoud offline beschikbaar is of niet, of er wordt melding gemaakt van de vervaldatum van de voucher waarna gebruikers de inhoud niet langer kunnen bekijken.
De constanteDRMStatusEvent.DRM_STATUS
definieert de waarde van de eigenschap type
van een gebeurtenisobject drmStatus
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
detail | Een tekenreeks waarin de context van een statusgebeurtenis wordt uitgelegd. |
isAnonymous | Geeft aan of de met DRM-codering beveiligde inhoud beschikbaar is zonder dat een gebruiker verificatiereferenties moet opgeven. |
isAvailableOffline | Geeft aan of de met DRM-codering beveiligde inhoud offline beschikbaar is. |
offlineLeasePeriod | Het aantal dagen dat de inhoud nog offline kan worden bekeken. |
policies | Een aangepast object van de DRM-statusgebeurtenis. |
target | Het NetStream-object. |
voucherEndDate | De absolute datum waarop de voucher verloopt en de inhoud niet meer door gebruikers kan worden bekeken. |
contentData | De DRMContentData voor de inhoud |
voucher | Het object DRMVoucher voor de inhoud. |
isLocal | Geeft aan of de inhoud is opgeslagen in het lokale bestandssysteem. |
Verwante API-elementen
ioError | Gebeurtenis |
flash.events.IOErrorEvent
eigenschap IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer een invoer- of uitvoerfout optreedt die ertoe leidt dat een netwerkbewerking mislukt.
Definieert de waarde van de eigenschaptype
van een gebeurtenisobject ioError
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
errorID | Een referentienummer dat aan de specifieke fout is gekoppeld (alleen AIR). |
target | Het netwerkobject dat de invoer-/uitvoerfout ondervindt. |
text | Tekst die moet worden weergegeven als foutbericht. |
mediaTypeData | Gebeurtenis |
flash.events.NetDataEvent
eigenschap NetDataEvent.type =
flash.events.NetDataEvent
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.3, AIR 2.7 |
Verzonden wanneer de video-inhoud wordt afgespeeld en bepaalde type berichten worden verwerkt.
Er wordt een NetDataEvent verzonden voor de volgende berichten:
- onCuePoint
- onImageData
- onMetaData
- onPlayStatus (voor de code NetStream.Play.Complete)
- onTextData
- onXMPData
Opmerking: deze gebeurtenis wordt niet verzonden door inhoud die in Flash Player in de browser op Android of Blackberry Tablet OS wordt uitgevoerd of wordt uitgevoerd door inhoud in AIR op iOS.
netStatus | Gebeurtenis |
flash.events.NetStatusEvent
eigenschap NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wordt verzonden wanneer een object NetStream de eigen status of fout meldt. De gebeurtenis netStatus
bevat een eigenschap info
. Dit is een informatieobject dat specifieke informatie over de gebeurtenis bevat, zoals of een poging om verbinding te maken is geslaagd of mislukt.
type
van een gebeurtenisobject netStatus
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
info | Een object met eigenschappen die de status of fout van het object beschrijven. |
target | Het object NetConnection of NetStream dat zijn status meldt. |
Verwante API-elementen
onCuePoint | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee stelt u een listener in die antwoordt wanneer tijdens het afspelen van een videobestand een ingesloten actiepunt is bereikt. U kunt deze listener gebruiken om handelingen in uw code te activeren wanneer de video een bepaald actiepunt bereikt. Vervolgens kunt u andere handelingen in uw toepassing synchroniseren met gebeurtenissen voor het afspelen van video. Zie de www.adobe.com/go/learn_fms_fileformats_nl voor informatie over videobestandsindelingen die worden ondersteund door Flash Media Server.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
onCuePoint
is in feite een eigenschap van het NetStream.client
-object. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het streamen van media via Flash Media Server of tijdens het afspelen van een FLV-bestand. Zie de beschrijving van de klasse NetStream voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onCuePoint
als een gebeurtenis te luisteren of deze als zodanig te verwerken. Definieer een callback-functie en koppel deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. Maak een subklasse van NetStream en definieer uw gebeurtenishandler in de subklasse. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
De gekoppelde gebeurtenislistener wordt geactiveerd na een aanroep van de methode NetStream.play()
, maar voordat de afspeelkop van de video naar voren is verplaatst.
U kunt de volgende typen actiepunten insluiten in een videobestand:
- Met een navigatieactiepunt wordt een hoofdframe in het videobestand opgegeven en de eigenschap
time
van het actiepunt komt exact overeen met dat hoofdframe. Navigatieactiepunten worden vaak als bladwijzer of ingangspunt gebruikt, zodat gebruikers door het videobestand kunnen navigeren. - Een gebeurtenisactiepunt geeft een tijd aan. De tijd kan overeenkomen met een bepaald hoofdframe, maar dit hoeft niet. Een gebeurtenisactiepunt staat doorgaans voor een moment in de video waarop iets gebeurt dat kan worden gebruikt om andere toepassingsgebeurtenissen te activeren.
Het gebeurtenisobject onCuePoint
heeft de volgende eigenschappen:
Eigenschap | Beschrijving |
---|---|
name | De naam die aan het actiepunt is gegeven toen het in het videobestand werd ingesloten. |
parameters | Een associatieve array van naam-/waardepaarstrings die voor dit actiepunt zijn opgegeven. Voor de parameternaam of -waarde kan elke geldige tekenreeks worden gebruikt. |
time | De tijd, in seconden, waarop het actiepunt tijdens het afspelen in het videobestand optreedt. |
type | Het type actiepunt dat is bereikt: navigatie of gebeurtenis. |
U kunt actiepunten in een videobestand definiëren wanneer u het bestand codeert of wanneer u een videoclip in het Flash-ontwerpgereedschap importeert met de wizard Video importeren.
Met de gebeurtenis onMetaData
wordt ook informatie over de actiepunten in een videobestand opgehaald. De gebeurtenis onMetaData
haalt die informatie echter op voordat de video wordt afgespeeld. Met de gebeurtenis onCuePoint
wordt tijdens het afspelen informatie over één actiepunt ontvangen op het voor dat actiepunt opgegeven tijdstip.
Wanneer u wilt dat uw code op een actiepunt reageert op het moment dat deze optreedt, gebruikt u de gebeurtenis onCuePoint
om een handeling in uw code te activeren.
U kunt gebruikmaken van de lijst met actiepunten, beschikbaar voor de gebeurtenis onMetaData
, om de gebruiker in staat te stellen de video af te spelen vanaf vooraf gedefinieerde punten in de videostream. Geef de waarde van de eigenschap time
van het actiepunt door aan de methode NetStream.seek()
om de video vanaf dat actiepunt af te spelen.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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); }
Verwante API-elementen
onDRMContentData | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.5, Flash Lite 4 |
Hiermee wordt een listener ingesteld die antwoordt wanneer AIR metagegevens ophaalt uit DRM-inhoud die is ingesloten in een mediabestand.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Een object DRMContentData bevat de informatie die nodig is om een voucher te verkrijgen dat is vereist voor het afspelen van een met DRM beveiligd mediabestand. Gebruik de klasse DRMManager om de voucher met deze informatie te downloaden.
onDRMContentData
is een eigenschap van het object NetStream.client
. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het vooraf laden van ingesloten gegevens uit een lokaal mediabestand. Zie de beschrijving van de klasse NetStream voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onDRMContentData
als een gebeurtenis te luisteren of deze als zodanig te verwerken. In plaats daarvan definieert u één callback-functie die u rechtstreeks aan een van de volgende objecten koppelt:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. U kunt wel een subklasse van NetStream maken en de gebeurtenishandler in de subklasse definiëren of de subklasse dynamisch maken en de gebeurtenishandlerfunctie aan een instantie van de subklasse toevoegen.
Verwante API-elementen
onImageData | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Hiermee wordt een listener ingesteld die antwoordt wanneer Flash Player afbeeldingsgegevens ontvangt als een bytearray die is ingesloten in een mediabestand dat wordt afgespeeld. De afbeeldingsgegevens kunnen JPEG-, PNG- of GIF-inhoud produceren. Gebruik de methode flash.display.Loader.loadBytes()
om de bytearray in een weergaveobject te laden.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
onImageData
is in feite een eigenschap van het NetStream.client
-object. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het streamen van media via Flash Media Server of tijdens het afspelen van een FLV-bestand. Zie de beschrijving van de klasse NetStream voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onImageData
als een gebeurtenis te luisteren of deze als zodanig te verwerken. Definieer één callback-functie en koppel deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. Maak een subklasse van NetStream en definieer uw gebeurtenishandler in de subklasse. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
De gekoppelde gebeurtenislistener wordt geactiveerd na een aanroep van de methode NetStream.play()
, maar voordat de afspeelkop van de video naar voren is verplaatst.
Het onImageData-gebeurtenisobject bevat de afbeeldingsgegevens als een bytearray die via een AMF0-gegevenskanaal wordt verzonden.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
Netstream.client
gebruikt om de callbackfuncties af te handelen voor onTextData
en onImageData
. De functie onImageDataHandler()
gebruikt het onImageData-gebeurtenisobject imageData
om de bytearray op te slaan. En de functie onTextDataHandler()
gebruikt het onTextData-gebeurtenisobject textData
om de stukjes tekstgegeven (elk stukje tekstgegeven is een eigenschap van het textData
-object) op te slaan.
U dient een echte locatie van een mediabestand te vervangen door tekst- of afbeeldingsmetagegevens voor de locatie "uwURL"
in de code.
U kunt de afbeeldings- en tekstgegevens ook afhandelen met een aangepaste klasse. Zie het artikel Metagegevens en actiepunten in Flash-video afhandelen voor meer informatie en voorbeelden.
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]); } } } }
Verwante API-elementen
onMetaData | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een listener ingesteld die antwoordt wanneer Flash Player beschrijvende informatie ontvangt die is ingesloten in de video die wordt afgespeeld. Zie de www.adobe.com/go/learn_fms_fileformats_nl voor informatie over videobestandsindelingen die worden ondersteund door Flash Media Server.
onMetaData
is in feite een eigenschap van het NetStream.client
-object. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het streamen van media via Flash Media Server of tijdens het afspelen van een FLV-bestand. Zie de beschrijving van de klasse NetStream en de eigenschap NetStream.client
voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onMetaData
als een gebeurtenis te luisteren of deze als zodanig te verwerken. Definieer één callback-functie en koppel deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. U kunt een subklasse van NetStream maken en uw gebeurtenishandler in de subklasse definiëren. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
In Flash Video Exporter 1.1 of hoger worden de duur, de aanmaakdatum, de gegevenssnelheden en andere gegevens in het videobestand zelf ingesloten. Met verschillende videocoderingsprogramma's worden verschillende sets metagegevens ingesloten.
De gekoppelde gebeurtenislistener wordt geactiveerd na een aanroep van de methode NetStream.play()
, maar voordat de afspeelkop van de video naar voren is verplaatst.
In veel gevallen komt de in de streammetagegevens ingesloten waarde voor de duur niet exact overeen met de werkelijke duur. Deze waarde komt dus niet altijd overeen met de waarde van de eigenschap NetStream.time
wanneer de afspeelkop het einde van de videostream bereikt.
Het gebeurtenisobject dat aan de gebeurtenishandler onMetaData wordt doorgegeven bevat voor elk stukje gegeven één eigenschap.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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); }
Verwante API-elementen
onPlayStatus | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt een listener ingesteld die moet antwoorden wanneer een NetStream-object een stream volledig heeft afgespeeld. Het gekoppelde gebeurtenisobject verstrekt informatie naast de informatie die wordt geretourneerd door de gebeurtenis netStatus
. U kunt deze eigenschap gebruiken om handelingen in uw code te activeren wanneer een object NetStream is overgeschakeld van de ene naar de andere stream in een afspeellijst (zoals aangegeven door het informatieobject NetStream.Play.Switch
) of wanneer een object NetStream tot het einde is afgespeeld (zoals aangegeven door het informatieobject NetStream.Play.Complete
).
onPlayStatus
is in feite een eigenschap van het NetStream.client
-object. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het streamen van media via Flash Media Server of tijdens het afspelen van een FLV-bestand. Zie de beschrijving van de klasse NetStream voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onPlayStatus
als een gebeurtenis te luisteren of deze als zodanig te verwerken. Definieer een callback-functie en koppel deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. Maak een subklasse van NetStream en definieer uw gebeurtenishandler in de subklasse. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
Deze gebeurtenis kan een informatieobject met de volgende eigenschappen retourneren:
Code-eigenschap | Niveau-eigenschap | Betekenis |
---|---|---|
NetStream.Play.Switch | "status" | De abonnee schakelt over van de ene naar de andere stream in een afspeellijst. |
NetStream.Play.Complete | "status" | Het afspelen is voltooid. |
NetStream.Play.TransitionComplete | "status" | De abonnee schakelt over naar een andere stream als gevolg van een wisseling in de bitsnelheid van de stream. |
Verwante API-elementen
onSeekPoint | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Wordt synchroon aangeroepen vanuit appendBytes()
wanneer de parser voor het toevoegen van bytes een punt tegenkomt en denkt dat dit punt doorzoekbaar is (bijvoorbeeld een videohoofdframe). Gebruik deze gebeurtenis om een zoekpuntentabel te maken. De byteCount
komt overeen met de byteCount
bij de eerste byte van het parseerbare bericht voor dat zoekpunt en wordt zoals eerder is beschreven op nul ingesteld. Als u wilt zoeken, lokaliseert u in de gebeurtenis NetStream.Seek.Notify
de bytes die beginnen bij een doorzoekbaar punt en roept u vervolgens appendBytes(bytes)
aan. Als het argument bytes
een ByteArray
is met bytes die beginnen bij het doorzoekbare punt, wordt de video afgespeeld vanaf dat zoekpunt.
Opmerking: Aanroepen vanuit deze callback naar appendBytes()
worden genegeerd.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
De eigenschap onSeekPoint
is een eigenschap van het object NetStream.client
. De eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op gegevens die worden ontvangen door de methode appendBytes()
. Zie de beschrijving van de klasse NetStream en de eigenschap NetStream.client
voor meer informatie. U kunt de methode addEventListener()
of een andere EventDispatcher-methode niet gebruiken om naar onSeekPoint
als gebeurtenis te luisteren of deze als gebeurtenis te verwerken. Als u onSeekPoint
wilt gebruiken, definieert u een callback-functie en koppelt u deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. U kunt echter een subklasse van NetStream maken en uw gebeurtenishandler in de subklasse definiëren. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
Verwante API-elementen
onTextData | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Hiermee wordt een listener ingesteld die antwoordt wanneer Flash Player tekstgegevens ontvangt die zijn ingesloten in een mediabestand dat wordt afgespeeld. De tekstgegevens hebben de UTF-8-indeling en kunnen informatie bevatten over opmaak op basis van de 3GP-specificatie voor getimede tekst.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
onTextData
is in feite een eigenschap van het NetStream.client
-object. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het streamen van media via Flash Media Server of tijdens het afspelen van een FLV-bestand. Zie de beschrijving van de klasse NetStream voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onTextData
als een gebeurtenis te luisteren of deze als zodanig te verwerken. Definieer een callback-functie en koppel deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. Maak een subklasse van NetStream en definieer uw gebeurtenishandler in de subklasse. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
De gekoppelde gebeurtenislistener wordt geactiveerd na een aanroep van de methode NetStream.play()
, maar voordat de afspeelkop van de video naar voren is verplaatst.
Het onTextData-gebeurtenisobject bevat één eigenschap voor elk stukje tekstgegeven.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
Netstream.client
gebruikt om de callbackfuncties af te handelen voor onTextData
en onImageData
. De functie onImageDataHandler()
gebruikt het onImageData-gebeurtenisobject imageData
om de bytearray op te slaan. En de functie onTextDataHandler()
gebruikt het onTextData-gebeurtenisobject textData
om de stukjes tekstgegeven (elk stukje tekstgegeven is een eigenschap van het textData
-object) op te slaan.
U dient een echte locatie van een mediabestand te vervangen door tekst- of afbeeldingsmetagegevens voor de locatie "uwURL"
in de code.
U kunt de afbeeldings- en tekstgegevens ook afhandelen met een aangepaste klasse. Zie het artikel Metagegevens en actiepunten in Flash-video afhandelen voor meer informatie en voorbeelden.
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]); } } } }
Verwante API-elementen
onXMPData | Gebeurtenis |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Hiermee wordt een listener tot stand gebracht die reageert wanneer Flash Player gegevens ontvangt met betrekking tot het Adobe Extensible Metadata Platform (XMP) dat is ingesloten in de video die wordt afgespeeld. Zie de www.adobe.com/go/learn_fms_fileformats_nl voor informatie over videobestandsindelingen die worden ondersteund door Flash Media Server.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
onXMPData
is in feite een eigenschap van het object NetStream.client
. Deze eigenschap wordt vermeld in de gebeurtenissensectie omdat deze reageert op een gegevensgebeurtenis tijdens het streamen van media via Flash Media Server of tijdens het afspelen van een FLV-bestand. Zie de beschrijving van de klasse NetStream en de eigenschap NetStream.client
voor meer informatie. U kunt niet de methode addEventListener()
of een andere EventDispatcher-methode gebruiken om naar onMetaData
als een gebeurtenis te luisteren of deze als zodanig te verwerken. Definieer een callback-functie en koppel deze aan een van de volgende objecten:
- Het object waarnaar de eigenschap
client
van een instantie NetStream verwijst. - Een instantie van een subklasse van NetStream. NetStream is een verzegelde klasse, hetgeen betekent dat gedurende de uitvoering geen eigenschappen of methoden kunnen worden toegevoegd aan een object NetStream. U kunt echter een subklasse van NetStream maken en uw gebeurtenishandler in de subklasse definiëren. U kunt de subklasse ook dynamisch maken en de gebeurtenishandlerfunctie toevoegen aan een instantie van de subklasse.
De gekoppelde gebeurtenislistener wordt geactiveerd na een aanroep van de methode NetStream.play()
, maar voordat de afspeelkop van de video naar voren is verplaatst.
Het object dat is doorgegeven aan de functie voor gebeurtenissenafhandeling onXMPData()
heeft één eigenschap data
, bestaande uit een tekenreeks. De tekenreeks wordt gegenereerd uit een UUID-box van het hoogste niveau. (De 128-bits UUID van de box op het hoogste niveau is BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
.) Deze UUID-box van het hoogste niveau bevat precies één XML-document dat wordt voorgesteld als een UTF-8-tekenreeks die wordt afgesloten met null.
Verwante API-elementen
status | Gebeurtenis |
flash.events.StatusEvent
eigenschap StatusEvent.type =
flash.events.StatusEvent.STATUS
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 1.0, Flash Lite 4 |
Wordt verzonden wanneer de toepassing inhoud die is gecodeerd met DRM (Digital Rights Management) probeert af te spelen door de methode NetStream.play()
te activeren. De waarde van de eigenschap status code zal "DRM.encryptedFLV"
zijn.
Opmerking: deze gebeurtenis wordt voor H.264-video in AIR 3.0 for iOS niet ondersteund.
Definieert de waarde van de eigenschaptype
van een gebeurtenisobject status
.
Deze gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
code | Beschrijving van de status van het object. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
level | De categorie van het bericht, zoals "status" , "warning" of "error" . |
target | Het object dat zijn status rapporteert. |
Verwante API-elementen
CONNECT_TO_FMS | Constante |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Een statisch object dat wordt gebruikt als parameter voor de constructor voor een instantie van NetStream. Dit is de standaardwaarde van de tweede parameter in de NetStream-constructor; deze wordt niet door de toepassing gebruikt voor het progressief afspelen van media. Indien gebruikt zorgt deze parameter ervoor dat de constructor verbinding met een instantie van Flash Media Server maakt.
DIRECT_CONNECTIONS | Constante |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Maakt een gelijkwaarde pubicatieverbinding. Deze tekenreeks voor de tweede (optionele) parameter doorgeven aan de constructor voor een instantie van NetStream. Met deze tekenreeks kan een toepassing een NetStream-verbinding maken met als doel het publiceren van audio en video voor clients.
In dit voorbeeld wordt de code die de objecten Video en NetStream maakt en de methoden Video.attachNetStream()
en NetStream.play()
aanroept, in een handlerfunctie geplaatst. De handler wordt alleen aangeroepen wanneer verbinding wordt gemaakt met het object NetConnection, dat wil zeggen, wanneer de gebeurtenis netStatus
een object info
retourneert waarvan de eigenschap code
aangeeft dat de verbinding is gelukt. Het wordt aanbevolen te wachten totdat de verbinding is gelukt voordat u NetStream.play()
aanroept.
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
-object gebruikt om de breedte en hoogte van een video-instantie video
in te stellen:
//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; }
Wed Jun 13 2018, 11:42 AM Z