Paket | flash.net |
Klasse | public class NetStream |
Vererbung | NetStream EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Verwenden Sie die NetStream-Klasse für die folgenden Aufgaben:
- Rufen Sie
NetStream.play()
auf, um eine Mediendatei von einer lokalen Festplatte, einem Webserver oder Flash Media Server abzuspielen. - Rufen Sie
NetStream.publish()
auf, um einen Video-, Audio- oder Datenstream für Flash Media Server zu veröffentlichen. - Rufen Sie
NetStream.send()
auf, um Datennachrichten an alle abonnierten Clients zu senden. - Rufen Sie
NetStream.send()
auf, um einem Live-Stream Metadaten hinzuzufügen. - Rufen Sie
NetStream.appendBytes
auf, um ByteArray-Daten an den NetStream zu übergeben.
Hinweis:Sie können einen Stream nicht über dasselbe NetStream-Objekt abspielen und veröffentlichen.
Adobe AIR sowie Flash Player 9.0.115.0 und neuere Versionen unterstützen Dateien, die aus dem MPEG-4-Standardcontainerformat abgeleitet werden. Zu diesen Dateien gehören F4V, MP4, M4A, MOV, MP4V, 3GP und 3G2, wenn sie H.264-Video, mit HEAAC v2 kodiertes Audio oder beides enthalten. Mit H.264 ist die Videoqualität im Vergleich zu demselben Codierungsprofil in Sorenson oder On2 bei niedrigeren Bitraten höher. AAC ist ein Standardaudioformat, das im Videostandard MPEG-4 definiert ist. HE-AAC v2 ist eine Erweiterung von AAC, die Spectral Band Replication (SBR) und Parametric Stereo (PS) verwendet, damit bei niedrigeren Bitraten effizienter kodiert werden kann.
Informationen zu unterstützten Codecs und Dateiformaten finden Sie hier:
- Flash Media Server-Dokumentation
- Exploring Flash Player support for high-definition H.264 video and AAC audio
- FLV/F4V open specification documents
Empfangen von Daten aus einem Flash Media Server-Stream, einer progressiven F4V-Datei oder einer progressiven FLV-Datei
Flash Media Server, F4V-Dateien und FLV-Dateien können Ereignisobjekte, die Daten enthalten, an bestimmten Datenpunkten während des Streaming oder der Wiedergabe senden. Sie können Daten aus einem Stream oder einer FLV-Datei während der Wiedergabe auf zwei Weisen handhaben:
-
Verknüpfen Sie eine Client-Eigenschaft mit einer Ereignisprozedur, um das Datenobjekt zu empfangen. Verwenden Sie die
NetStream.client
-Eigenschaft, um ein Objekt zu verknüpfen, das spezifische Datenhandhabungsfunktionen aufrufen soll. Das mit derNetStream.client
-Eigenschaft verknüpfte Objekt kann die folgenden Datenpunkte überwachen:onCuePoint()
,onImageData()
,onMetaData()
,onPlayStatus()
,onSeekPoint()
,onTextData()
undonXMPData()
. Schreiben Sie Prozeduren in diese Funktionen, um das während der Wiedergabe vom Stream zurückgegebene Datenobjekt zu verarbeiten. Weitere Informationen finden Sie unter derNetStream.client
-Eigenschaft. - Verknüpfen Sie eine Client-Eigenschaft mit einer Unterklasse der NetStream-Klasse und schreiben Sie anschließend eine Ereignisprozedur, um das Datenobjekt zu empfangen. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Sie können jedoch eine Unterklasse von NetStream erstellen und Ihre Ereignisprozedur in der Unterklasse definieren. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedur einer Instanz der Unterklasse hinzufügen.
Warten Sie, bis Sie ein NetGroup.Neighbor.Connect
-Ereignis erhalten, bevor Sie die Objektreplizierung verwenden, direkt weiterleiten oder APIs posten.
Hinweis: Um Daten über eine Audiodatei wie z. B. eine MP3-Datei zu senden, verwenden Sie die Sound-Klasse, um die Audiodatei mit einem Sound-Objekt zu verknüpfen. Verwenden Sie anschließend die Sound.id3
-Eigenschaft, um Metadaten aus der Sounddatei zu lesen.
Unterstützung für H.264-kodiertes Video in AIR for iOS
Bei H.264-Video unterstützt AIR 3.0 (und höher) for iOS einen Teilsatz der NetStream-API. In der folgenden Tabelle sind NetStream-Mitglieder für die Wiedergabe aufgeführt, die in AIR for iOS nicht unterstützt werden:
Nicht unterstützte Eigenschaften | Nicht unterstützte Methoden | Nicht unterstützte Ereignisse |
---|---|---|
bufferTime | appendBytes() | onCuePoint (funktioniert nur mit FLV-Dateien) |
bufferLength | appendBytesAction() | onImageData |
backBufferTime | step() | onSeekPoint |
backBufferLength | onTextData | |
bufferTimeMax | onXMPData | |
bytesLoaded | drmError | |
currentFPS | drmStatus | |
inBufferSeek | onDRMContentData | |
info | drmAuthenticate | |
liveDelay | DRM.encryptedFLV-Statusereigniscode | |
maxPauseBufferTime | ||
soundTransform | ||
Alle Eigenschaften, die RTMFP-Verbindungen beschreiben |
Weitere Informationen zur Verwendung von AIR for iOS finden Sie im Abschnitt zur NetStream.play()
-Methode.
Verwandte API-Elemente
flash.net.NetConnection
appendBytes()
play()
veröffentlichen()
send()
onImageData
onMetaData
Eigenschaft | Definiert von | ||
---|---|---|---|
audioReliable : Boolean
Gibt bei RTMFP-Verbindungen an, ob Audio vollständig zuverlässig gesendet wird. | NetStream | ||
audioSampleAccess : Boolean
Gibt bei RTMFP-Verbindungen an, ob Peer-to-Peer-Abonnenten für diesen NetStream den Audiostream erfassen dürfen. | NetStream | ||
backBufferLength : Number [schreibgeschützt]
Die Anzahl der Sekunden von zuvor angezeigten Daten, die zurzeit zum Zurückspulen und Abspielen zwischengespeichert werden. | NetStream | ||
backBufferTime : Number
Gibt an (in Sekunden), wie viele der zuvor abgespielten Daten Flash Player zum Zurückspulen und Abspielen zwischenzuspeichern versucht. | NetStream | ||
bufferLength : Number [schreibgeschützt]
Die derzeit im Puffer befindliche Datenmenge, gemessen in Sekunden. | NetStream | ||
bufferTime : Number
Bestimmt, wie lange Nachrichten im Zwischenspeicher bleiben, bis mit der Anzeige des Streams begonnen wird. | NetStream | ||
bufferTimeMax : Number
Gibt die maximale Pufferlänge für Live-Streaming-Inhalt in Sekunden an. | NetStream | ||
bytesLoaded : uint [schreibgeschützt]
Die Anzahl der in die Anwendung geladenen Datenbyte. | NetStream | ||
bytesTotal : uint [schreibgeschützt]
Die Gesamtgröße (in Byte) der in die Anwendung geladenen Datei. | NetStream | ||
checkPolicyFile : Boolean
Gibt an, ob die Anwendung vor dem Laden der Videodatei versucht, eine Cross-Domain-Richtliniendatei vom Server der Videodatei herunterzuladen. | NetStream | ||
client : Object
Gibt das Objekt an, für das Rückrufmethoden aufgerufen werden, um Streaming- oder F4V/FLV-Dateidaten zu verarbeiten. | NetStream | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
currentFPS : Number [schreibgeschützt]
Die Zahl der pro Sekunde angezeigten Bilder. | NetStream | ||
dataReliable : Boolean
Gibt bei RTMFP-Verbindungen an, ob NetStream.send()-Aufrufe vollständig zuverlässig gesendet werden. | NetStream | ||
farID : String [schreibgeschützt]
Bei RTMFP-Verbindungen der Bezeichner des anderen Endes, das mit dieser NetStream-Instanz verbunden ist. | NetStream | ||
farNonce : String [schreibgeschützt]
Bei RTMFP- und RTMPE-Verbindungen ein Wert, der vom anderen Ende dieses Streams gewählt wird und für diese Verbindung eindeutig ist. | NetStream | ||
inBufferSeek : Boolean
Gibt an, ob die angezeigten Daten für den intelligenten Suchlauf zwischengespeichert werden (TRUE) oder nicht (FALSE). | NetStream | ||
info : NetStreamInfo [schreibgeschützt]
Gibt ein NetStreamInfo-Objekt zurück, dessen Eigenschaften Statistiken über die Dienstqualität enthalten. | NetStream | ||
liveDelay : Number [schreibgeschützt]
Die Datenmenge (in Sekunden) im Zwischenspeicher des abonnierenden Streams im Live-Modus (ohne Puffer). | NetStream | ||
maxPauseBufferTime : Number
Gibt an, wie lange (in Sekunden) Meldungen im Pause-Modus gepuffert werden. | NetStream | ||
multicastAvailabilitySendToAll : Boolean
Gibt bei RTMFP-Verbindungen an, ob Verfügbarkeitsmeldungen für Peer-to-Peer-Multicast-Fragmente an alle Peers oder nur an einen Peer gesendet werden. | NetStream | ||
multicastAvailabilityUpdatePeriod : Number
Gibt bei RTMFP-Verbindungen das Intervall in Sekunden zwischen Meldungen an, die Peers benachrichtigen, dass beim lokalen Knoten neue Peer-to-Peer-Multicast-Medienfragmente verfügbar sind. | NetStream | ||
multicastFetchPeriod : Number
Gibt bei RTMFP-Verbindungen die Zeit in Sekunden an, wie lange es ab dem Zeitpunkt, zu dem der lokale Knoten erfährt, dass ein Peer-to-Peer-Multicast-Medienfragment verfügbar ist, dauert, bis er versucht, es von einem Peer abzurufen. | NetStream | ||
multicastInfo : NetStreamMulticastInfo [schreibgeschützt]
Gibt bei RTMFP-Verbindungen ein NetStreamMulticastInfo-Objekt zurück, dessen Eigenschaften Statistiken zur Dienstgüte enthalten. | NetStream | ||
multicastPushNeighborLimit : Number
Gibt bei RTMFP-Verbindungen die maximale Anzahl von Peers an, an die proaktiv Multicast-Medien geleitet werden können. | NetStream | ||
multicastRelayMarginDuration : Number
Gibt bei RTMFP-Verbindungen die Dauer in Sekunden an, für die Peer-to-Peer-Multicast-Daten verfügbar bleiben, um an Peers gesendet zu werden, die sie nach einer angegebenen Dauer anfordern. | NetStream | ||
multicastWindowDuration : Number
Gibt bei RTMFP-Verbindungen die Dauer des Peer-to-Peer-Multicastreassembly-Fensters in Sekunden an. | NetStream | ||
nearNonce : String [schreibgeschützt]
Bei RTMFP- und RTMPE-Verbindungen ein Wert, der von diesem Ende des Streams gewählt wird und für diese Verbindung eindeutig ist. | NetStream | ||
objectEncoding : uint [schreibgeschützt]
Die Objektkodierung (AMF-Version) für dieses NetStream-Objekt. | NetStream | ||
peerStreams : Array [schreibgeschützt]
Ein Objekt, das alle abonnierenden NetStream-Instanzen enthält, die diese veröffentlichende NetStream-Instanz überwachen. | NetStream | ||
soundTransform : flash.media:SoundTransform
Steuert den Sound in diesem NetStream-Objekt. | NetStream | ||
time : Number [schreibgeschützt]
Die Position des Abspielkopfs in Sekunden. | NetStream | ||
useHardwareDecoder : Boolean
Gibt an, ob hardwarebeschleunigte Dekodierung für den Stream verwendet werden soll. | NetStream | ||
useJitterBuffer : Boolean
Minimiert die Latenz für nicht gepuffertes Live-Streaming (bufferTime = 0). | NetStream | ||
videoReliable : Boolean
Gibt bei RTMFP-Verbindungen an, ob Video vollständig zuverlässig gesendet wird. | NetStream | ||
videoSampleAccess : Boolean
Gibt bei RTMFP-Verbindungen an, ob Peer-to-Peer-Abonnenten für diesen NetStream den Video-Stream erfassen dürfen. | NetStream | ||
videoStreamSettings : VideoStreamSettings
Legt Eigenschaften für die Streamkomprimierung fest. | NetStream |
Methode | Definiert von | ||
---|---|---|---|
Erstellt einen Stream, mit dem Sie Mediendateien abspielen und Daten über ein NetConnection-Objekt senden können. | NetStream | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Übergibt ein ByteArray für die Wiedergabe an einen NetStream. | NetStream | ||
Zeigt eine Diskontinuität der Zeitskala an, leert den FIFO und teilt dem Byte-Parser mit, einen Datei-Header oder den Anfang eines FLV-Tags zu erwarten. | NetStream | ||
Hängt einen Stream an ein neues NetConnection-Objekt an. | NetStream | ||
Fügt einen über das NetStream-Objekt gesendeten Audiostream einem NetStream-Objekt hinzu, wobei das Microphone-Objekt als Quelle übergeben wurde. | NetStream | ||
Startet die Erfassung der Videodaten von einer Kamera bzw. stoppt die Erfassung, wenn „theCamera“ auf „null“ gesetzt ist. | NetStream | ||
Stoppt die Wiedergabe der Daten im Stream, legt für die Eigenschaft „time“ den Wert 0 fest und macht den Stream für andere Verwendungszwecke verfügbar. | NetStream | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
Gibt alle Ressourcen frei, die vom NetStream-Objekt gehalten werden. | NetStream | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Wird ausgelöst, wenn ein Peer-Publishing-Stream mit einem Peer-Subscribing-Stream übereinstimmt. | NetStream | ||
Hält die Wiedergabe eines Videostreams an. | NetStream | ||
Spielt eine Mediendatei von einem lokalen Verzeichnis oder einem Webserver ab; spielt eine Mediendatei oder einen Livestream von Flash Media Server ab. | NetStream | ||
Wechselt nahtlos zwischen Dateien mit mehreren Bitraten und ermöglicht einem NetStream die Wiederaufnahme, wenn eine Verbindung getrennt und wiederhergestellt wurde. | NetStream | ||
Extrahiert DRM-Metadaten aus einer lokal gespeicherten Mediendatei. | NetStream | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Sendet einen Stream mit Audiodaten, Videodaten und Datennachrichten von einem Client an Flash Media Server. Der Stream kann während der Übertragung aufgezeichnet werden. | NetStream | ||
Gibt an, ob eingehende Audiodaten im Stream wiedergegeben werden. | NetStream | ||
Gibt an, ob eingehende Videodaten im Stream wiedergegeben werden. | NetStream | ||
Gibt die Bildrate für eingehendes Video an. | NetStream | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
[statisch]
In AIR-Anwendungen werden dadurch alle lokal gespeicherten Digital Rights Management (DRM)-Gutscheindaten gelöscht. | NetStream | ||
Setzt die Wiedergabe eines angehaltenen Videostreams fort. | NetStream | ||
Sucht das Schlüsselbild (in der Videobranche auch „I-Frame“ genannt), das der angegebenen Position am nächsten ist. | NetStream | ||
Sendet eine Nachricht an alle Clients mit Abonnement über den veröffentlichten Stream. | NetStream | ||
Senden die DRM-Authentifizierungsdaten, die für die Anzeige des verschlüsselten Inhalts erforderlich sind. | NetStream | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Geht in Relation zum aktuell angezeigten Bild die angegebene Anzahl von Bildern vor oder zurück. | NetStream | ||
Hält die Wiedergabe eines Streams an oder setzt sie fort. | NetStream | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
Ereignis | Übersicht | Definiert von | ||
---|---|---|---|---|
[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | |||
Wird ausgelöst, wenn eine Ausnahme asynchron, d. h. aus nativem asynchronem Code ausgelöst wird. | NetStream | |||
[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird. | EventDispatcher | |||
Wird ausgelöst, wenn ein NetStream-Objekt versucht, mit DRM (Digital Rights Management) verschlüsselten Inhalt abzuspielen, für den Benutzerdaten zur Authentifizierung erforderlich sind. | NetStream | |||
Wird ausgelöst, wenn ein NetStream-Objekt versucht, eine mit DRM (Digital Rights Management) verschlüsselte Datei abzuspielen und dabei ein DRM-Fehler auftritt. | NetStream | |||
Wird ausgelöst, wenn der DRM-verschlüsselte Inhalt (Digital Rights Management) abgespielt wird (wenn der Benutzer authentifiziert wurde und berechtigt ist, den Inhalt abzuspielen). | NetStream | |||
Wird beim Auftreten eines I/O-Fehlers ausgelöst, durch den ein Netzwerkvorgang fehlschlägt. | NetStream | |||
Wird abgesetzt, wenn Video abgespielt wird und bestimmte Meldungstypen verarbeitet werden. | NetStream | |||
Wird ausgelöst, wenn der Status oder die Fehlerbedingung eines NetStream-Objekts protokolliert wird. | NetStream | |||
Erstellt einen Listener, der reagiert, wenn während des Abspielens einer Videodatei ein eingebetteter Cue-Point erreicht wird. | NetStream | |||
Erstellt einen Listener, der reagiert, wenn AIR DRM-Inhalts-Metadaten extrahiert, die in einer Mediendatei eingebettet sind. | NetStream | |||
Erstellt einen Listener, der reagiert, wenn Flash Player Bilddaten als Bytearray erhält, das in einer Mediendatei eingebettet ist, die aktuell abgespielt wird. | NetStream | |||
Erstellt einen Listener, der reagiert, wenn Flash Player beschreibende Informationen erhält, die in ein Video eingebettet sind, das aktuell abgespielt wird. | NetStream | |||
Erstellt einen Listener, der reagiert, wenn ein NetStream-Objekt einen Stream vollständig abgespielt hat. | NetStream | |||
Wird synchron von appendBytes() aufgerufen, wenn der Append-Bytes-Parser auf einen Punkt trifft, den er als ansteuerbaren Punkt betrachtet (zum Beispiel ein Videoschlüsselbild). | NetStream | |||
Erstellt einen Listener, der reagiert, wenn Flash Player Textdaten empfängt, die in einer aktuell abgespielten Mediendatei eingebettet sind. | NetStream | |||
Erstellt einen Listener, der reagiert, wenn Flash Player Informationen empfängt, die spezifisch für die Adobe Extensible Metadata Platform (XMP) sind und die in einem Video eingebettet sind, das aktuell abgespielt wird. | NetStream | |||
Wird ausgelöst, wenn die Anwendung versucht, mit DRM (Digital Rights Management) verschlüsselten Inhalt abzuspielen, indem die NetStream.play()-Methode aufgerufen wird. | NetStream |
Konstante | Definiert von | ||
---|---|---|---|
CONNECT_TO_FMS : String = "connectToFMS" [statisch]
Ein statisches Objekt, das als Parameter für den Konstruktor einer NetStream-Instanz verwendet wird. | NetStream | ||
DIRECT_CONNECTIONS : String = "directConnections" [statisch]
Stellt eine Peer-to-Peer-Herausgeberverbindung her. | NetStream |
audioReliable | Eigenschaft |
audioReliable:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen an, ob Audio vollständig zuverlässig gesendet wird. Mit der Einstellung TRUE sind alle über diesen NetStream übertragenen Audiodaten vollständig zuverlässig. Mit der Einstellung FALSE sind die übertragenen Audiodaten nicht vollständig zuverlässig, sondern werden für eine begrenzte Zeit erneut übertragen und dann ausgelassen. Sie können den Wert FALSE verwenden, um die Latenzzeit auf Kosten der Audioqualität zu verringern.
Wenn Sie diese Eigenschaft in einem Netzwerkprotokoll, das teilweise Zuverlässigkeit nicht unterstützt, auf FALSE setzen, wird der Versuch ignoriert und die Eigenschaft wird auf TRUE gesetzt.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get audioReliable():Boolean
public function set audioReliable(value:Boolean):void
Verwandte API-Elemente
audioSampleAccess | Eigenschaft |
audioSampleAccess:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen an, ob Peer-to-Peer-Abonnenten für diesen NetStream den Audiostream erfassen dürfen. Mit der Einstellung FALSE resultieren Versuche von Abonnenten, den Audiostream zu erfassen, zu Berechtigungsfehlern.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get audioSampleAccess():Boolean
public function set audioSampleAccess(value:Boolean):void
Verwandte API-Elemente
backBufferLength | Eigenschaft |
backBufferLength:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Die Anzahl der Sekunden von zuvor angezeigten Daten, die zurzeit zum Zurückspulen und Abspielen zwischengespeichert werden.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Diese Eigenschaft ist nur verfügbar, wenn Daten von Flash Media Server 3.5.3 oder höher gestreamt werden. Weitere Informationen zu Flash Media Server finden Sie in der Beschreibung der Klasse.
Um anzugeben, wie viele der zuvor angezeigten Daten zwischengespeichert werden, verwenden Sie die Netstream.backBufferTime
-Eigenschaft.
Um die Zwischenspeicherung von Daten zu verhindern, setzen Sie die Netstream.inBufferSeek
-Eigenschaft auf FALSE.
Implementierung
public function get backBufferLength():Number
Verwandte API-Elemente
backBufferTime | Eigenschaft |
backBufferTime:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt an (in Sekunden), wie viele der zuvor abgespielten Daten Flash Player zum Zurückspulen und Abspielen zwischenzuspeichern versucht. Der Standardwert beträgt 30 Sekunden für Desktopanwendungen und 3 Sekunden für mobile Anwendungen.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Diese Eigenschaft ist nur verfügbar, wenn Daten von Flash Media Server Version 3.5.3 oder höher gestreamt werden. Weitere Informationen zu Flash Media Server finden Sie in der Beschreibung der Klasse.
Mit dieser Eigenschaft können Sie die Leistung bei Rücklaufoperationen verbessern, da bereits angezeigte Daten nicht erneut vom Server abgerufen werden müssen. Stattdessen wiederholt der Stream die Wiedergabe der Daten aus dem Puffer. Während der Wiedergabe werden weiterhin Daten vom Server gestreamt, bis der Puffer voll ist.
Wenn die Rücklaufposition weiter zurück liegt als die Daten im Cache, wird der Puffer gelöscht; die Daten werden dann ab der angeforderten Position vom Server gestreamt.
Um diese Eigenschaft zu verwenden, setzen Sie die Netstream.inBufferSeek
-Eigenschaft auf TRUE.
Implementierung
public function get backBufferTime():Number
public function set backBufferTime(value:Number):void
Verwandte API-Elemente
bufferLength | Eigenschaft |
bufferLength:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die derzeit im Puffer befindliche Datenmenge, gemessen in Sekunden. Wenn Sie diese Eigenschaft zusammen mit bufferTime
verwenden, können Sie einschätzen, wie weit der Zwischenspeicher belegt ist, um beispielsweise eine Rückmeldung für einen Benutzer anzuzeigen, der darauf wartet, dass Daten in den Zwischenspeicher geladen werden.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get bufferLength():Number
Verwandte API-Elemente
bufferTime | Eigenschaft |
bufferTime:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Bestimmt, wie lange Nachrichten im Zwischenspeicher bleiben, bis mit der Anzeige des Streams begonnen wird.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Der Standardwert ist 0,1 (ein Zehntel einer Sekunde). Mit der Eigenschaft bufferLength
können Sie die derzeit im Puffer befindliche Datenmenge (in Sekunden) ermitteln.
Um eine serverseitige Wiedergabeliste abzuspielen, stellen Sie bufferTime
auf mindestens 1 Sekunde. Wenn es Probleme mit der Wiedergabe gibt, erhöhen Sie die Länge von bufferTime
.
Aufgezeichnete Inhalte Um beim Streaming von aufgezeichneten Inhalten (nicht live) Verzerrungen zu vermeiden, sollten Sie den Wert von Netstream.bufferTime
auf 0 setzen. Bei aufgezeichneten Inhalten verwendet die Anwendung standardmäßig einen Eingabepuffer, der die Mediendaten in eine Warteschlange stellt und die Medien korrekt wiedergibt. Verwenden Sie bei aufgezeichneten Inhalten die Standardeinstellung oder erhöhen Sie die Pufferzeit.
Live-Inhalt Beim Streaming von Live-Inhalten setzen Sie die bufferTime
-Eigenschaft auf 0.
Beginnend mit Flash Player 9.0.115.0 leert der Flash Player den Puffer nicht mehr, wenn NetStream.pause()
aufgerufen wird. In Vorgängerversionen von Flash Player 9.0.115.0 hat Flash Player gewartet, bis der Puffer voll war, bevor die Wiedergabe fortgesetzt wurde, wodurch es häufig zu Verzögerungen kam.
Für eine einzelne Pause hat die NetStream.bufferLength
-Eigenschaft ein Limit von 60 Sekunden oder das Doppelte des Werts von NetStream.bufferTime
, je nachdem, welcher Wert höher ist. Wenn bufferTime
zum Beispiel 20 Sekunden beträgt, puffert Flash Player, bis NetStream.bufferLength
den höheren Wert von 20*2 (40) oder 60 hat. In diesem Fall puffer Flash Player, bis bufferLength
den Wert 60 hat. Wenn bufferTime
40 Sekunden beträgt, puffert Flash Player, bis bufferLength
den höheren Wert von 40*2 (80) oder 60 hat. In diesem Fall puffert Flash Player, bis bufferLength
den Wert 80 hat.
Die bufferLength
-Eigenschaft hat auch ein absolutes Limit. Wenn ein Aufruf von pause()
dazu führt, dass bufferLength
auf mehr als 600 Sekunden ansteigt oder der Wert von bufferTime
* 2, je nachdem, welcher Wert höher ist, löscht Flash Player den Puffer und setzt bufferLength
auf 0 zurück. Wenn bufferTime
zum Beispiel 120 Sekunden beträgt, löscht Flash Player den Puffer, wenn bufferLength
den Wert 600 Sekunden erreicht; wenn bufferTime
360 Sekunden beträgt, löscht Flash Player den Puffer, wenn bufferLength
den Wert 720 Sekunden erreicht.
Tipp: Sie können im Code NetStream.pause()
verwenden, um Daten zu puffern, während Betrachter zum Beispiel einen Werbespot sehen, und dann die Pause aufheben, wenn das Hauptvideo beginnt.
Weitere Informationen zum neuen Pausenverhalten finden Sie unter http://www.adobe.com/go/learn_fms_smartpause_de.
Flash Media Server. Das Pufferverhalten ist davon abhängig, ob die Pufferzeit für einen veröffentlichenden oder abonnierenden Stream festgelegt wird. Für einen veröffentlichenden Stream legt bufferTime
fest, wie lange der ausgehende Puffer anwachsen kann, bevor die Anwendung beginnt, Bilder zu überspringen. Bei einer Highspeed-Verbindung stellt die Pufferzeit kein Problem dar; Daten werden fast so schnell gesendet, wie die Anwendung sie puffern kann. Bei langsameren Verbindungen kann es jedoch einen erheblichen Unterschied geben zwischen der Geschwindigkeit, mit der die Anwendung Daten puffert, und der Geschwindigkeit, mit der die Daten an den Client gesendet werden.
Für einen abonnierenden Stream legt bufferTime
fest, wie lange eingehende Daten gepuffert werden, bevor der Stream angezeigt wird.
Wenn ein aufgezeichneter Stream abgespielt wird und bufferTime
den Wert 0 aufweist, stellt Flash einen kleinen Wert ein (ca. 10 Millisekunden). Wenn Live-Stream später abgespielt werden (zum Beispiel von einer Wiedergabeliste) bleibt die Pufferzeit erhalten. Das bedeutet, bufferTime
bleibt „nicht null“ für den Stream.
Implementierung
public function get bufferTime():Number
public function set bufferTime(value:Number):void
Verwandte API-Elemente
bufferTimeMax | Eigenschaft |
bufferTimeMax:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt die maximale Pufferlänge für Live-Streaming-Inhalt in Sekunden an. Der Standardwert ist 0. Die Pufferlänge kann mit der Zeit aufgrund von Netzwerk- und Geräteproblemen zunehmen (zum Beispiel wegen unterschiedlich laufender Uhren bei Sender und Empfänger). Legen Sie diese Eigenschaft fest, um die Pufferlänge für Live-Anwendungen wie Meetings und Überwachung abzudecken.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Wenn bufferTimeMax > 0
und bufferLength >= bufferTimeMax
, wird Audio schneller abgespielt, bis bufferLength
den Wert von bufferTime
erreicht. Wenn ein Live-Stream nur aus Video besteht, wird das Video schneller abgespielt, bis bufferLength
den Wert von bufferTime
erreicht.
Je nachdem, wie viel der Wiedergabe nachhängt (die Differenz zwischen bufferLength
und bufferTime
) steuert Flash Player die Aufholrate zwischen 1,5% und 6,25%. Wenn der Stream Audio enthält, wird die schnellere Wiedergabe durch Frequenzdomänen-Downsampling erreicht, wobei die Audioverzerrung minimiert wird.
Legen Sie die bufferTimeMax
-Eigenschaft fest, um das Aufholen (Catch-up) bei gepufferten Livestreams in den folgenden Fällen zu ermöglichen:
- Streaming von Live-Medien von Flash Media Server.
- Streaming von Live-Medien im Datengenerierungsmodus (
NetStream.appendBytes()
).
Implementierung
public function get bufferTimeMax():Number
public function set bufferTimeMax(value:Number):void
Verwandte API-Elemente
bytesLoaded | Eigenschaft |
bytesLoaded:uint
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die Anzahl der in die Anwendung geladenen Datenbyte. Wenn Sie diese Eigenschaft zusammen mit bytesTotal
verwenden, können Sie einschätzen, wie weit der Zwischenspeicher belegt ist, um beispielsweise eine Rückmeldung für einen Benutzer anzuzeigen, der darauf wartet, dass Daten in den Zwischenspeicher geladen werden.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get bytesLoaded():uint
Verwandte API-Elemente
bytesTotal | Eigenschaft |
checkPolicyFile | Eigenschaft |
checkPolicyFile:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt an, ob die Anwendung vor dem Laden der Videodatei versucht, eine Cross-Domain-Richtliniendatei vom Server der Videodatei herunterzuladen. Verwenden Sie diese Eigenschaft für progressive Videodownloads und zum Laden von Dateien, die sich außerhalb der Domäne der aufrufenden SWF-Datei befinden. Diese Eigenschaft wird ignoriert, wenn Sie RTMP verwenden.
Stellen Sie diese Eigenschaft auf true
, um BitmapData.draw()
für eine Videodatei aufzurufen, die aus einer Domäne außerhalb der Domäne der aufrufenden SWF-Datei geladen wurde. Die BitmapData.draw()
-Methode ermöglicht den Zugriff auf das Video auf Pixelebene. Wenn Sie BitmapData.draw()
aufrufen, ohne die Eigenschaft checkPolicyFile
zum Ladezeitpunkt auf true
zu setzen, wird möglicherweise eine SecurityError
-Ausnahme ausgelöst, da die erforderliche Richtliniendatei nicht heruntergeladen wurde.
Setzen Sie diese Eigenschaft nicht auf „true“, es sei denn, Sie wünschen Zugriff auf Pixelebene auf das Video, das Sie laden. Durch die Suche nach einer Richtliniendatei wird Netzwerkbandbreite belegt und der Start des Download-Vorgangs möglicherweise verzögert.
Wenn Sie die Methode NetStream.play()
aufrufen und checkPolicyFile
auf true
gesetzt ist, muss in Flash Player oder der AIR-Laufzeitumgebung vor dem Herunterladen entweder eine entsprechende Cross-Domain-Richtlinie erfolgreich heruntergeladen werden, oder es muss festgestellt werden, dass keine Richtliniendatei vorhanden ist. In Flash Player oder der AIR-Laufzeitumgebung werden die folgenden Aktionen in der angegebenen Reihenfolge ausgeführt, um zu überprüfen, ob eine Richtliniendatei vorhanden ist:
- Die Anwendung überprüft Richtliniendateien, die bereits heruntergeladen wurden.
- Die Anwendung versucht, ausstehende Richtliniendateien herunterzuladen, die in Aufrufen von
Security.loadPolicyFile()
angegeben wurden. - Die Anwendung versucht, eine Richtliniendatei vom Standardspeicherort herunterzuladen, der der an
NetStream.play()
übergebenen URL entspricht, d. h./crossdomain.xml
auf dem gleichen Server wie die URL.
In allen Fällen muss für Flash Player oder Adobe AIR eine entsprechende Richtliniendatei auf dem Server des Videos vorhanden sein, über die anhand ihres Speicherorts auf das Objekt unter der an play()
übergebenen URL zugegriffen werden kann und über die die Domäne der aufrufenden Datei über mindestens ein <allow-access-from>
-Tag auf das Video zugreifen kann.
Wenn Sie checkPolicyFile
auf true
setzen, wartet die Anwendung mit dem Laden des Videos, bis die Richtliniendatei überprüft wurde. Warten Sie mit dem Ausführen von Vorgängen auf Pixelebene (z. B. Aufrufen von BitmapData.draw()
), bis Sie onMetaData
- oder NetStatus
-Ereignisse von Ihrem NetStream-Objekt erhalten.
Wenn Sie checkPolicyFile
auf true
setzen, jedoch keine entsprechende Richtliniendatei gefunden wird, wird eine Fehlermeldung erst dann ausgegeben, wenn Sie einen Vorgang durchführen, der eine Richtliniendatei erfordert. Dann wird in der Anwendung eine SecurityError-Ausnahme ausgegeben.
Beim Herunterladen einer Videodatei von einer URL, bei der serverseitige HTTP-Weiterleitungen verwendet werden, müssen Sie darauf achten, checkPolicyFile
richtig zu verwenden. Die Anwendung versucht, Richtliniendateien abzurufen, die der ursprünglichen in NetStream.play()
angegebenen URL entsprechen. Wenn die endgültige Videodatei aufgrund von HTTP-Weiterleitungen von einer anderen URL stammt, gelten die ursprünglich heruntergeladenen Richtliniendateien möglicherweise nicht für die endgültige URL der Videodatei. Dies ist jedoch die URL, die bei Sicherheitsentscheidungen von Bedeutung ist.
Weitere Informationen zu Richtliniendateien finden Sie unter „Websitesteuerungen (Richtliniendateien)“ im ActionScript 3.0 Entwicklerhandbuch und im Flash Player Developer Center im Artikel: Sicherheit.
Implementierung
public function get checkPolicyFile():Boolean
public function set checkPolicyFile(value:Boolean):void
Verwandte API-Elemente
client | Eigenschaft |
client:Object
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt das Objekt an, für das Rückrufmethoden aufgerufen werden, um Streaming- oder F4V/FLV-Dateidaten zu verarbeiten. Standardeinstellung ist das erstellte NetStream-Objekt this
. Wenn Sie die client
-Eigenschaft auf ein anderes Objekt setzen, werden Callback-Methoden auf diesem anderen Objekt aufgerufen. Das NetStream.client
-Objekt kann die folgenden Funktionen aufrufen und ein verknüpftes Datenobjekt empfangen: onCuePoint()
, onImageData()
, onMetaData()
, onPlayStatus()
, onSeekPoint()
, onTextData()
und onXMPData()
.
Verknüpfen der client
-Eigenschaft mit einer Ereignisprozedur:
- Erstellen Sie ein Objekt und verknüpfen Sie es mit der
client
-Eigenschaft des NetStream-Objekts:var customClient:Object = new Object(); my_netstream.client = customClient;
- Verknüpfen Sie eine Ereignisprozedurfunktion für das gewünschte Datenereignis als Eigenschaft des Client-Objekts:
customClient.onImageData = onImageDataHandler;
- Schreiben Sie die Prozedurfunktion, um das Datenereignisobjekt zu empfangen, z. B.:
public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); }
Wenn Daten durch den Stream oder während der Wiedergabe übergeben werden, wird das Datenereignisobjekt (in diesem Fall das imageData
-Objekt) mit den Daten gefüllt. In der Beschreibung zu onImageData
finden Sie ein vollständiges Beispiel eines Objekts, dass mit der client
-Eigenschaft verknüpft ist.
Verknüpfen der client
-Eigenschaft mit einer Unterklasse:
- Erstellen Sie eine Unterklasse mit einer Prozedurfunktion, um das Datenereignisobjekt zu empfangen:
class CustomClient { public function onMetaData(info:Object):void { trace("metadata: duration=" + info.duration + " framerate=" + info.framerate); }
- Verknüpfen Sie eine Instanz der Unterklasse mit der
client
-Eigenschaft des NetStream-Objekts:my_netstream.client = new CustomClient();
Wenn Daten durch den Stream oder während der Wiedergabe übergeben werden, wird das Datenereignisobjekt (in diesem Fall das info
-Objekt) mit den Daten gefüllt. Im Klassenbeispiel am Ende der NetStream-Klasse können Sie sehen, wie eine Unterklasseninstanz mit der client
-Eigenschaft verknüpft wird.
Implementierung
public function get client():Object
public function set client(value:Object):void
Auslöser
TypeError — Die client -Eigenschaft muss auf ein Objekt eingestellt werden, das nicht null ist.
|
Verwandte API-Elemente
currentFPS | Eigenschaft |
currentFPS:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die Zahl der pro Sekunde angezeigten Bilder. Wenn Sie Videodateien für die Wiedergabe auf verschiedenen Systemen exportieren, können Sie mithilfe dieses Werts beim Testen bestimmen, wie stark die exportierte Datei komprimiert werden soll.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get currentFPS():Number
dataReliable | Eigenschaft |
dataReliable:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen an, ob NetStream.send()
-Aufrufe vollständig zuverlässig gesendet werden. Bei der Einstellung TRUE sind Aufrufe von NetStream.send()
, die über diesen NetStream übertragen werden, vollständig zuverlässig. Bei der Einstellung FALSE werden Aufrufe von NetStream.send()
nicht mit vollständiger Zuverlässigkeit übertragen, sondern für eine begrenzte Zeit erneut übertragen und dann ausgelassen. Sie können diesen Wert auf FALSE setzen, um die Latenzzeit auf Kosten der Datenqualität zu verringern.
Wenn Sie diese Eigenschaft in einem Netzwerkprotokoll, das teilweise Zuverlässigkeit nicht unterstützt, auf FALSE setzen, wird der Versuch ignoriert und die Eigenschaft wird auf TRUE gesetzt.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get dataReliable():Boolean
public function set dataReliable(value:Boolean):void
Verwandte API-Elemente
farID | Eigenschaft |
farID:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Bei RTMFP-Verbindungen der Bezeichner des anderen Endes, das mit dieser NetStream-Instanz verbunden ist.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get farID():String
farNonce | Eigenschaft |
farNonce:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Bei RTMFP- und RTMPE-Verbindungen ein Wert, der vom anderen Ende dieses Streams gewählt wird und für diese Verbindung eindeutig ist. Dieser Wert erscheint am anderen Ende des Streams als nearNonce
-Wert
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get farNonce():String
inBufferSeek | Eigenschaft |
inBufferSeek:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt an, ob die angezeigten Daten für den intelligenten Suchlauf zwischengespeichert werden (TRUE
) oder nicht (FALSE
). Der Standardwert lautet FALSE.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Flash Media Server 3.5.3 und Flash Player 10.1 arbeiten zusammen, um den intelligenten Suchlauf zu unterstützen. Beim intelligenten Suchlauf werden Rücklauf- und Vorlaufpuffer verwendet, um Suchläufe auszuführen, ohne Daten vom Server anzufordern. Bei Standardsuchläufen werden die gepufferten Daten gelöscht und neue Daten werden basierend auf der Suchlaufzeit vom Server angefordert.
Rufen Sie NetStream.step()
auf, um eine bestimmte Anzahl Bilder vor- oder zurückzugehen. Rufen Sie NetStream.seek()
auf, um eine bestimmte Anzahl Sekunden vor- oder zurückzugehen.
Mit intelligenten Suchläufen wird die Serverlast verringert und die Suchlaufleistung verbessert. Stellen Sie inBufferSeek=true
ein und rufen Sie step()
und seek()
auf, um Folgendes zu erstellen:
- Clientseitige DVR-Funktionen. Suchen Sie im clientseitigen Puffer anstatt wegen der Zustellung neuen Videos zum Server zu gehen.
- Trickmodi. Erstellen Sie Player, die bildweise vor- oder zurückgehen, schnellen Rücklauf oder schnellen Vorlauf verwenden oder in Zeitlupe abspielen.
Wenn inBufferSeek=true
und ein Aufruf von NetStream.seek()
erfolgreich ist, enthält die info.description
-Eigenschaft von NetStatusEvent den String "client-inBufferSeek"
.
Wenn ein Aufruf von NetStream.step()
erfolgreich ist, enthält die info.code
-Eigenschaft von NetStatusEvent den String "NetStream.Step.Notify"
.
Implementierung
public function get inBufferSeek():Boolean
public function set inBufferSeek(value:Boolean):void
Verwandte API-Elemente
info | Eigenschaft |
info:NetStreamInfo
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt ein NetStreamInfo-Objekt zurück, dessen Eigenschaften Statistiken über die Dienstqualität enthalten. Das Objekt ist ein Schnappschuss des aktuellen Status.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get info():NetStreamInfo
Verwandte API-Elemente
liveDelay | Eigenschaft |
liveDelay:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die Datenmenge (in Sekunden) im Zwischenspeicher des abonnierenden Streams im Live-Modus (ohne Puffer). Diese Eigenschaft gibt die aktuelle Netzwerkübertragungsverzögerung an.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Diese Eigenschaft ist für die Verwendung mit einem Server wie Flash Media Server konzipiert. Weitere Informationen finden Sie in der Beschreibung der Klasse.
Mit dem Wert dieser Eigenschaft können Sie die Übertragungsqualität des Streams grob einschätzen und dem Benutzer mitteilen.
Implementierung
public function get liveDelay():Number
maxPauseBufferTime | Eigenschaft |
maxPauseBufferTime:Number
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Gibt an, wie lange (in Sekunden) Meldungen im Pause-Modus gepuffert werden. Diese Eigenschaft kann verwendet werden, um zu beschränken, wie viel im Pause-Modus gepuffert werden soll. Sobald der Wert für NetStream.bufferLength
dieses Limit erreicht hat, werden keine weiteren Daten mehr gepuffert.
Wenn dieser Wert nicht festgelegt ist, wird das Limit auf 60 Sekunden oder auf den doppelten Wert von NetStream.bufferTime
auf jeder Pause gesetzt, je nachdem, welcher Wert höher ist.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get maxPauseBufferTime():Number
public function set maxPauseBufferTime(value:Number):void
Verwandte API-Elemente
multicastAvailabilitySendToAll | Eigenschaft |
multicastAvailabilitySendToAll:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen an, ob Verfügbarkeitsmeldungen für Peer-to-Peer-Multicast-Fragmente an alle Peers oder nur an einen Peer gesendet werden. Der Wert TRUE gibt an, dass die Nachrichten einmal pro angegebenem Intervall an alle Peers gesendet werden. Der Wert FALSE gibt an, dass die Nachrichten einmal pro angegebenem Intervall an einen Peer gesendet werden. Das Intervall wird von der multicastAvailabilityUpdatePeriod
-Eigenschaft bestimmt.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastAvailabilitySendToAll():Boolean
public function set multicastAvailabilitySendToAll(value:Boolean):void
Verwandte API-Elemente
multicastAvailabilityUpdatePeriod | Eigenschaft |
multicastAvailabilityUpdatePeriod:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen das Intervall in Sekunden zwischen Meldungen an, die Peers benachrichtigen, dass beim lokalen Knoten neue Peer-to-Peer-Multicast-Medienfragmente verfügbar sind. Größere Werte können die Batcheffizienz verbessern und die Steuerungslast reduzieren; sie können jedoch auch die Qualität auf Empfängerseite verschlechtern, da die verfügbare Zeit zum Abrufen von Fragmenten, bevor sie verworfen werden, verringert wird. Niedrigere Werte können die Latenzzeit verringern und die Qualität verbessern, sie erhöhen jedoch die Steuerungslast.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastAvailabilityUpdatePeriod():Number
public function set multicastAvailabilityUpdatePeriod(value:Number):void
Verwandte API-Elemente
multicastFetchPeriod | Eigenschaft |
multicastFetchPeriod:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen die Zeit in Sekunden an, wie lange es ab dem Zeitpunkt, zu dem der lokale Knoten erfährt, dass ein Peer-to-Peer-Multicast-Medienfragment verfügbar ist, dauert, bis er versucht, es von einem Peer abzurufen. Dieser Wert ermöglicht das proaktive Senden des Fragments an den lokalen Knoten, bevor das Abrufen von einem Peer versucht wird. Er lässt auch zu, dass mehrere Peers die Verfügbarkeit des Fragments ankündigen, damit die Abruflast auf mehrere Peers verteilt werden kann.
Größere Werte können den Lastausgleich verbessern und das Peer-to-Peer-Mesh gleichmäßiger belasten, sie verringern jedoch die verfügbare multicastWindowDuration
und erhöhen die Latenzzeit. Kleinere Werte können die Latenzzeit verringern, wenn Abrufen erforderlich ist, können aber den redundanten Datenempfang erhöhen und den Lastausgleich im Peer-to-Peer-Mesh verschlechtern.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastFetchPeriod():Number
public function set multicastFetchPeriod(value:Number):void
Verwandte API-Elemente
multicastInfo | Eigenschaft |
multicastInfo:NetStreamMulticastInfo
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen ein NetStreamMulticastInfo-Objekt zurück, dessen Eigenschaften Statistiken zur Dienstgüte enthalten. Das Objekt ist ein Schnappschuss des aktuellen Status.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastInfo():NetStreamMulticastInfo
Verwandte API-Elemente
multicastPushNeighborLimit | Eigenschaft |
multicastPushNeighborLimit:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen die maximale Anzahl von Peers an, an die proaktiv Multicast-Medien geleitet werden können.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastPushNeighborLimit():Number
public function set multicastPushNeighborLimit(value:Number):void
multicastRelayMarginDuration | Eigenschaft |
multicastRelayMarginDuration:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen die Dauer in Sekunden an, für die Peer-to-Peer-Multicast-Daten verfügbar bleiben, um an Peers gesendet zu werden, die sie nach einer angegebenen Dauer anfordern. Die Dauer wird mit der multicastWindowDuration
-Eigenschaft festgelegt.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastRelayMarginDuration():Number
public function set multicastRelayMarginDuration(value:Number):void
Verwandte API-Elemente
multicastWindowDuration | Eigenschaft |
multicastWindowDuration:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen die Dauer des Peer-to-Peer-Multicastreassembly-Fensters in Sekunden an. Kürzere Werte verringern die Latenzzeit, können aber die Qualität verschlechtern, da nicht genügend Zeit zum Abrufen aller Fragmente gegeben wird. Umgekehrt können größere Werte die Qualität verbessern, da mehr Zeit zum Abrufen aller Fragmente zugelassen wird, was mit einer entsprechend längeren Latenzzeit einhergeht.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get multicastWindowDuration():Number
public function set multicastWindowDuration(value:Number):void
Verwandte API-Elemente
nearNonce | Eigenschaft |
nearNonce:String
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Bei RTMFP- und RTMPE-Verbindungen ein Wert, der von diesem Ende des Streams gewählt wird und für diese Verbindung eindeutig ist. Dieser Wert erscheint am anderen Ende des Streams als farNonce
-Wert
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get nearNonce():String
objectEncoding | Eigenschaft |
objectEncoding:uint
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die Objektkodierung (AMF-Version) für dieses NetStream-Objekt. Der objectEncoding
-Wert für das NetStream-Objekt wird von dem verknüpften NetConnection-Objekt übernommen. Es ist wichtig, die Funktionsweise dieser Eigenschaft zu kennen, wenn die Kommunikation der ActionScript 3.0-SWF-Datei mit Servern erforderlich ist, die eine ältere Version als Flash Player 9 aufweisen. Weitere Informationen finden Sie in der Beschreibung der Eigenschaft objectEncoding
in der NetConnection-Klasse.
Der Wert dieser Eigenschaft hängt davon ab, ob es sich um einen lokalen oder einen Remote-Stream handelt. Lokale Streams, bei denen null
an die Methode NetConnection.connect()
übergeben wurde, geben den Wert NetConnection.defaultObjectEncoding
zurück. Remote-Streams, bei denen Sie eine Verbindung zu einem Server herstellen, geben die Objektkodierung der Serververbindung zurück.
Wenn Sie versuchen, diese Eigenschaft ohne Verbindung zu lesen oder diese Eigenschaft zu ändern, gibt die Anwendung eine Ausnahme aus.
Implementierung
public function get objectEncoding():uint
Verwandte API-Elemente
peerStreams | Eigenschaft |
soundTransform | Eigenschaft |
soundTransform:flash.media:SoundTransform
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Steuert den Sound in diesem NetStream-Objekt. Weitere Informationen hierzu finden Sie im Abschnitt zur SoundTransform-Klasse.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Verwandte API-Elemente
time | Eigenschaft |
time:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Die Position des Abspielkopfs in Sekunden.
Flash Media Server Bei einem abonnierenden Stream die Anzahl der Sekunden, die der Stream bereits abgespielt wurde. Bei einem veröffentlichenden Stream die Anzahl der Sekunden, die der Stream veröffentlicht wurde. Die Zahl ist bis zur Tausenderdezimalstelle genau; multiplizieren Sie sie mit 1000, um die Anzahl der Millisekunden zu erhalten, die der Stream bereits abgespielt wurde.
Wenn der Server bei einem abonnierenden Stream aufhört, Daten zu senden, aber der Stream offen bleibt, wird der Wert der time
-Eigenschaft nicht weiter erhöht. Wenn der Server beginnt, wieder Daten zu senden, wird der Wert von dem Punkt, an dem angehalten wurde (als der Server aufgehört hat, Daten zu senden), weiter erhöht.
Der Wert für time
wird weiter erhöht, wenn der Stream von einem Wiedergabeelement zu einem anderen wechselt. Diese Eigenschaft wird auf 0 gesetzt, wenn NetStream.play()
aufgerufen wird und dabei reset
den Wert 1
oder true
aufweist, oder wenn NetStream.close()
aufgerufen wird.
Implementierung
public function get time():Number
Verwandte API-Elemente
useHardwareDecoder | Eigenschaft |
useHardwareDecoder:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11, AIR 3 |
Gibt an, ob hardwarebeschleunigte Dekodierung für den Stream verwendet werden soll.
Hinweis: Sie können diese Eigenschaft nicht während der Videowiedergabe festlegen. Sie müssen sie vor dem Aufruf von NetStream.play()
festlegen.
Der Standardwert ist true.
Implementierung
public function get useHardwareDecoder():Boolean
public function set useHardwareDecoder(value:Boolean):void
Verwandte API-Elemente
useJitterBuffer | Eigenschaft |
useJitterBuffer:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11.3, AIR 3.3 |
Minimiert die Latenz für nicht gepuffertes Live-Streaming (bufferTime = 0). Audionachrichten werden in einem adaptiven Jitter-Puffer platziert, anstatt einen konservativen push-basierten Catchup-Mechanismus zu verwenden. Wenn Audio vom Lautsprechergerät benötigt wird, werden Nachrichten aus dem Jitter-Puffer geholt, dekodiert und abgespielt. Speex und G.711 verwenden immer diesen pull-basierten Ansatz, unabhängig von diesen Einstellungen (useJitterBuffer gibt für Speex/G.711 „true“ zurück). Wenn diese Einstellung im nicht gepufferten Modus aktiviert ist, verwenden alle Codes Jitter-Puffer, zum Beispiel Speex, G.711, Nellymoser, MP3 und AAC. Diese Eigenschaft hat im gepufferten Modus (bufferTime > 0) keine Auswirkungen, deshalb gibt useJitterBuffer „false“ zurück.
Implementierung
public function get useJitterBuffer():Boolean
public function set useJitterBuffer(value:Boolean):void
videoReliable | Eigenschaft |
videoReliable:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen an, ob Video vollständig zuverlässig gesendet wird. Mit der Einstellung TRUE sind alle über diesen NetStream übertragenen Videodaten vollständig zuverlässig. Mit der Einstellung FALSE sind die übertragenen Videodaten nicht vollständig zuverlässig, sondern werden für eine begrenzte Zeit erneut übertragen und dann ausgelassen. Sie können den Wert FALSE verwenden, um die Latenzzeit auf Kosten der Videoqualität zu verringern.
Wenn Sie diese Eigenschaft in einem Netzwerkprotokoll, das teilweise Zuverlässigkeit nicht unterstützt, auf FALSE setzen, wird der Versuch ignoriert und die Eigenschaft wird auf TRUE gesetzt.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get videoReliable():Boolean
public function set videoReliable(value:Boolean):void
Verwandte API-Elemente
videoSampleAccess | Eigenschaft |
videoSampleAccess:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Gibt bei RTMFP-Verbindungen an, ob Peer-to-Peer-Abonnenten für diesen NetStream den Video-Stream erfassen dürfen. Mit der Einstellung FALSE resultieren Versuche von Abonnenten, den Videostream zu erfassen, in Berechtigungsfehlern.
Hinweis: Diese Eigenschaft wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Implementierung
public function get videoSampleAccess():Boolean
public function set videoSampleAccess(value:Boolean):void
Verwandte API-Elemente
videoStreamSettings | Eigenschaft |
videoStreamSettings:VideoStreamSettings
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11/ConnectAddin, AIR 3 |
Legt Eigenschaften für die Streamkomprimierung fest. Weitere Informationen finden Sie unter VideoStreamSettings
. Wenn keine Kamera an das System angeschlossen ist, wird null zurückgegeben.
Implementierung
public function get videoStreamSettings():VideoStreamSettings
public function set videoStreamSettings(value:VideoStreamSettings):void
Verwandte API-Elemente
NetStream | () | Konstruktor |
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt einen Stream, mit dem Sie Mediendateien abspielen und Daten über ein NetConnection-Objekt senden können.
Es gilt als ungültig, das netStatus
-Ereignis eines NetStream-Objekts nicht zu verarbeiten. Um Fehler zu vermeiden, registrieren Sie einen Listener für netStatus
, nachdem Sie das NetStream-Objekt erstellt haben und bevor Sie seine play()
-Methode aufrufen.
connection:NetConnection — Ein NetConnection-Objekt.
| |
peerID:String (default = "connectToFMS ") — Dieser optionale Parameter ist in Flash Player 10 und höher für die Verwendung mit RTMFP-Verbindungen verfügbar. (Wenn der Wert der NetConnection.protocol -Eigenschaft nicht "rtmfp" ist, wird dieser Parameter ignoriert.) Verwenden Sie einen der folgenden Werte:
In den meisten Fällen hat eine Wenn Sie diesen Parameter in Ihre Konstruktoranweisung einschließen, aber den Wert |
Auslöser
ArgumentError — Die NetConnection-Instanz ist nicht verbunden.
|
Verwandte API-Elemente
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"
Beispiel ( Verwendung dieses Beispiels )
videoURL
verknüpft ist:
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
) auf einer remoten Flash Media Server-Instanz verknüpft ist, die im connect()
-Befehl angegeben ist:
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Übergibt ein ByteArray für die Wiedergabe an einen NetStream. Rufen Sie diese Methode für einen NetStream im Datengenerierungsmodus auf. Um einen NetStream in den Datengenerierungsmodus zu versetzen, rufen Sie NetStream.play(null)
für einen NetStream auf, der in einer NetConnection erstellt wurde, die mit null
verbunden ist. Das Aufrufen von appendBytes()
für einen NetStream, der sich nicht im Datengenerierungsmodus befindet, ist ein Fehler und führt zu einer Ausnahme.
Hinweis: Diese Methode wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Der Byte-Parser versteht eine FLV-Datei mit einem Header. Nachdem der Header analysiert wurde, erwartet appendBytes()
, dass alle zukünftigen Aufrufe Fortsetzungen derselben realen oder virtuellen Datei sind. Es wird kein weiterer Header erwartet, sofern nicht appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
aufgerufen wird.
Ein NetStream-Objekt hat zwei Pufferspeicher: den FIFO von appendBytes()
für den NetStream und den Wiedergabepuffer. Der FIFO ist der Zusammensetzungspuffer für FLV-Teil-Tags und enthält nicht mehr als ein unvollständiges FLV-Tag. Aufrufe von NetStream.seek()
leeren beide Pufferspeicher. Rufen Sie nach einem Aufruf von seek()
die appendBytesAction()
-Methode auf, um die Zeitskala auf den Anfang des Zeitstempels der nächsten angehängten Nachricht zurückzusetzen.
Jeder Aufruf von appendBytes()
fügt dem FIFO Bytes hinzu, bis ein FLV-Tag vollständig ist. Wenn ein FLV-Tag vollständig ist, wird es in den Wiedergabepuffer verschoben. Ein Aufruf von appendBytes()
kann mehrere FLV-Tags schreiben. Die ersten Bytes vervollständigen ein vorhandenes FLV-Tag (das in den Wiedergabepuffer verschoben wird). Vollständige FLV-Tags werden in den Wiedergabepuffer verschoben. Verbleibende Bytes, die kein vollständiges FLV-Tag bilden, kommen in den FIFO. Bytes im FIFO werden entweder durch einen Aufruf von appendBytes()
vervollständigt oder durch einen Aufruf von appendBytesAction()
mit dem Argument RESET_SEEK
oder RESET_BEGIN
entfernt.
Hinweis: Der Byte-Parser kann einen Aufruf von appendBytes()
möglicherweise nicht vollständig dekodieren, bis ein nachfolgender Aufruf von appendBytes()
erfolgt.
Parameter
bytes:ByteArray |
Verwandte API-Elemente
appendBytesAction | () | Methode |
public function appendBytesAction(netStreamAppendBytesAction:String):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Zeigt eine Diskontinuität der Zeitskala an, leert den FIFO und teilt dem Byte-Parser mit, einen Datei-Header oder den Anfang eines FLV-Tags zu erwarten.
Hinweis: Diese Methode wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Aufrufe von NetStream.seek()
leeren die NetStream-Pufferspeicher. Der Byte-Parser verbleibt im Leeren-Modus, bis Sie appendBytesAction()
aufrufen und das Argument RESET_BEGIN
oder RESET_SEEK
übergeben. Erfassen Sie das "NetStream.Seek.Notify"
-Ereignis, um appendBytesAction()
nach einem Suchlauf aufzurufen. Ein neuer Datei-Header kann Wiedergabelisten und Suchläufe unterstützen, ohne NetStream.seek()
aufzurufen.
Sie können diese Methode auch aufrufen, um den Bytezähler für den onSeekPoint()
-Rückruf zurückzusetzen.
Parameter
netStreamAppendBytesAction:String |
Verwandte API-Elemente
attach | () | Methode |
public function attach(connection:NetConnection):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Hängt einen Stream an ein neues NetConnection-Objekt an. Rufen Sie diese Methode auf, um einen NetStream an ein neues NetConnection-Objekt anzuhängen, nachdem eine Verbindung getrennt und wieder hergestellt wurde. Flash Player und AIR nehmen das Streaming ab dem Wiedergabepunkt, bei dem die Verbindung unterbrochen wurde, wieder auf. Sie können diese Methode auch verwenden, um Load Balancing (Lastausgleich) zu implementieren.
Für diese Methode ist Flash Media Server Version 3.5.3 oder höher erforderlich.
Informationen zur Verwendung dieser Methode zum Implementieren der Stream-Neuverbindung finden Sie in der Flash Media Server 3.5.3-Dokumentation.
Um mit dieser Methode Lastausgleich zu implementieren, gehen Sie folgendermaßen vor:
- Fügen Sie einem NetConnection-Objekt auf einem anderen Server einen verbundenen Stream hinzu.
- Nachdem der Stream erfolgreich der neuen Verbindung hinzugefügt wurde, rufen Sie
NetConnection.close()
für die frühere Verbindung auf, um zu verhindern, dass Daten austreten. - Rufen Sie
NetStream.play2()
auf und stellen Sie den Wert vonNetStreamPlayOptions.transition
auf RESUME. Stellen Sie die restlichen Eigenschaften von NetStreamPlayOptions auf dieselben Werte ein, die Sie beim ursprünglichen Aufruf vonNetStream.play()
oderNetStream.play2()
verwendet haben, um den Stream zu starten.
Parameter
connection:NetConnection |
Verwandte API-Elemente
attachAudio | () | Methode |
public function attachAudio(microphone:Microphone):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Fügt einen über das NetStream-Objekt gesendeten Audiostream einem NetStream-Objekt hinzu, wobei das Microphone-Objekt als Quelle übergeben wurde. Diese Methode ist nur für den Herausgeber des angegebenen Streams verfügbar.
Verwenden Sie diese Methode mit Flash Media Server, um Live-Audio an den Server zu senden. Rufen Sie diese Methode vor oder nach dem Aufruf der publish()
-Methode auf.
Stellen Sie die Microphone.rate
-Eigenschaft so ein, dass sie der Rate des Sounderfassungsgerät entspricht. Rufen Sie setSilenceLevel()
auf, um den Schwellenwert für Stille festzulegen. Um die Soundeigenschaften (Lautstärke und Panning) des Audiostreams zu steuern, verwenden Sie die Microphone.soundTransform
-Eigenschaft.
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")
Um das Audio zu hören, rufen Sie die NetStream.play()
-Methode auf. Mit einem Aufruf von DisplayObjectContainer.addChild()
leiten Sie das Audio an ein Objekt in der Anzeigeliste.
Parameter
microphone:Microphone — Die Quelle des zu übertragenden Audiostreams.
|
Verwandte API-Elemente
attachCamera | () | Methode |
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Startet die Erfassung der Videodaten von einer Kamera bzw. stoppt die Erfassung, wenn theCamera
auf null
gesetzt ist. Diese Methode ist nur für den Herausgeber des angegebenen Streams verfügbar.
Diese Methode ist für die Verwendung mit Flash Media Server konzipiert. Weitere Informationen finden Sie in der Beschreibung der Klasse.
Nachdem Sie die Videoquelle angehängt haben, müssen Sie NetStream.publish()
aufrufen, um die Übertragung zu starten. Abonnenten, die das Video anzeigen möchten, müssen die NetStream.play()
- und die Video.attachCamera()
-Methode aufrufen, um das Video auf der Bühne anzuzeigen.
Mit snapshotMilliseconds
können Sie einen einzelnen Schnappschuss (durch Angabe des Werts „0“) oder eine Reihe von Schnappschüssen - die zusammen ein Zeitraffer-Video ergeben - senden. Hierzu geben Sie einen positiven Wert an, der dem Videofeed einen Nachspann anhängt, dessen Dauer der angegebenen Zahl in Millisekunden entspricht. Der Nachspann verlängert die Anzeigezeit der Videonachricht. Wenn wiederholt attachCamera()
mit einem positiven Wert für snapshotMilliseconds
aufgerufen wird, erzeugt die Sequenz wechselnder Schnappschüsse und Nachspänne ein Zeitraffer-Video. Sie können beispielsweise ein Bild pro Tag erfassen und an eine Videodatei anhängen. Wenn ein Abonnent die Datei wiedergibt, wird jedes Bild für die Dauer der angegebenen Anzahl an Millisekunden angezeigt.
Der Parameter snapshotMilliseconds
hat nicht denselben Zweck wie der Parameter fps
, den Sie mit Camera.setMode()
festlegen können. Durch die Angabe von snapshotMilliseconds
steuern Sie, wie viel Zeit zwischen den aufgezeichneten Bildern verstreicht. Durch Angabe von fps
mit Camera.setMode()
steuern Sie, wie viel Zeit zwischen Aufnahme und Wiedergabe verstreicht.
Beispiel: Sie möchten für insgesamt 100 Schnappschüsse alle fünf Minuten einen Schnappschuss erstellen. Hierzu haben Sie zwei Möglichkeiten:
- Sie können 100-mal den Befehl
NetStream.attachCamera(myCamera, 500)
ausführen, einmal alle fünf Minuten. So dauert die Aufnahme 500 Minuten, die Wiedergabe der Datei jedoch nur 50 Sekunden (100 Bilder mit 500 Millisekunden pro Bild). - Sie können den Befehl
Camera.setMode()
mit einemfps
-Wert von 1/300 (1 Bild alle 300 Sekunden, d. h. alle fünf Minuten) und anschließend den BefehlNetStream.attachCamera(source)
ausführen, wobei die Kamera 500 Minuten fortlaufend aufzeichnet. Die Wiedergabe der fertigen Datei dauert 500 Minuten (dieselbe Dauer wie für die Aufnahme) und jedes Bild wird fünf Minuten lang angezeigt.
Bei beiden Methoden werden dieselben 500 Bilder erfasst, und beide Ansätze sind nützlich. Es hängt hauptsächlich von Ihren Wiedergabeanforderungen ab, welcher Ansatz für Sie geeigneter ist. Im zweiten Fall hätten Sie beispielsweise die Möglichkeit, über den gesamten Zeitraum Audiodaten aufzuzeichnen. Darüber hinaus haben die beiden Dateien etwa dieselbe Größe.
Parameter
theCamera:Camera — Die Quelle der Videoübertragung. Gültige Werte sind ein Camera-Objekt (das die Erfassung der Videodaten startet) und null . Wenn Sie null übergeben, stoppt die Anwendung die Erfassung, und alle weiteren gesendeten Parameter werden ignoriert.
| |
snapshotMilliseconds:int (default = -1 ) — Gibt an, ob es sich um einen kontinuierlichen Videostream, ein einzelnes Bild oder eine Reihe einzelner Bilder zur Erstellung von Zeitraffer-Material handelt.
|
close | () | Methode |
public function close():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stoppt die Wiedergabe der Daten im Stream, legt für die Eigenschaft time
den Wert 0 fest und macht den Stream für andere Verwendungszwecke verfügbar. Durch diese Methode wird auch die lokale Kopie einer Videodatei gelöscht, die über HTTP heruntergeladen wurde. Auch wenn die Anwendung die lokale Kopie der erstellten Datei löscht, verbleibt möglicherweise eine Kopie im Cache-Verzeichnis des Wenn Sie die Cache- oder lokale Speicherung der Videodatei vollständig vermeiden möchten, verwenden Sie Flash Media Server.
Wenn Flash Media Server verwendet wird, wird diese Methode implizit aufgerufen, wenn Sie NetStream.play()
aus einem veröffentlichenden Stream oder NetStream.publish()
aus einem abonnierenden Stream aufrufen. Bitte beachten Sie Folgendes:
-
Wenn
close()
von einem veröffentlichenden Stream aufgerufen wird, stoppt der Stream die Veröffentlichung, und der Herausgeber kann den Stream jetzt für andere Zwecke verwenden. Abonnenten erhalten nichts mehr, das im Stream veröffentlicht wurde, da der Stream die Veröffentlichung beendet hat. -
Wenn
close()
von einem abonnierenden Stream aufgerufen wird, wird das Abspielen des Streams für den Abonnenten gestoppt, und der Abonnent kann den Stream für andere Zwecke verwenden. Andere Abonnenten sind davon nicht betroffen. -
Sie können das Abspielen eines abonnierenden Streams stoppen, ohne den Stream zu schließen oder den Stream-Typ zu ändern, indem Sie
flash.net.NetStream.play(false)
verwenden.
Verwandte API-Elemente
dispose | () | Methode |
public function dispose():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 11, AIR 3.0 |
Gibt alle Ressourcen frei, die vom NetStream-Objekt gehalten werden.
Die dispose()
-Methode ähnelt der close
-Methode. Der Hauptunterschied zwischen den Methoden ist der, dass dispose()
den Speicher freigibt, der für die Anzeige des aktuellen Videobildes verwendet wird. Wird dieses Bild zurzeit auf dem Bildschirm angezeigt, wird die Anzeige leer. Mit der close()
-Methode wird der Bildschirm nicht leer, da die Methode diesen Speicher nicht freigibt.
onPeerConnect | () | Methode |
public function onPeerConnect(subscriber:NetStream):Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Wird ausgelöst, wenn ein Peer-Publishing-Stream mit einem Peer-Subscribing-Stream übereinstimmt. Bevor der Abonnent mit dem Herausgeber verbunden wird, rufen Sie diese Methode auf, um dem ActionScript-Code eine feine Zugriffskontrolle für Peer-to-Peer-Publishing zu ermöglichen. Der folgende Code zeigt ein Beispiel, wie eine Callback-Funktion für diese Methode erstellt wird:
var c:Object = new Object; c.onPeerConnect = function(subscriber:NetStream):Boolean { if (accept) return true; else return false; }; m_netStream.client = c;
Wenn ein Peer-Herausgeber diese Methode nicht implementiert, dürfen alle Peers veröffentlichten Inhalt wiedergeben.
Parameter
subscriber:NetStream |
Boolean |
pause | () | Methode |
public function pause():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hält die Wiedergabe eines Videostreams an. Wenn die Wiedergabe bereits angehalten wurde, hat der Aufruf dieser Methode keine Auswirkung. Rufen Sie resume()
auf, um ein angehaltenes Video weiter abzuspielen. Rufen Sie togglePause()
, um zwischen dem Anhalten und Abspielen (erst anhalten, dann weiter abspielen) des Videos umzuschalten.
Beginnend mit Flash Player 9.0.115.0 leert der Flash Player den Puffer nicht mehr, wenn NetStream.pause()
aufgerufen wird. Dieses Verhalten wird „smart pause“ genannt. In Vorgängerversionen von Flash Player 9.0.115.0 hat Flash Player gewartet, bis der Puffer voll war, bevor die Wiedergabe fortgesetzt wurde, wodurch es häufig zu Verzögerungen kam.
Hinweis: Aus Gründen der Abwärtskompatibilität wird das "NetStream.Buffer.Flush"
-Ereignis (siehe NetStatusEvent.info
-Eigenschaft) immer noch abgesetzt, obwohl der Server den Puffer nicht leert.
Für eine einzelne Pause hat die NetStream.bufferLength
-Eigenschaft ein Limit von 60 Sekunden oder das Doppelte des Werts von NetStream.bufferTime
, je nachdem, welcher Wert höher ist. Wenn bufferTime
zum Beispiel 20 Sekunden beträgt, puffert Flash Player, bis NetStream.bufferLength
den höheren Wert von 20*2 (40) oder 60 hat; in diesem Fall also bis bufferLength
den Wert 60 hat. Wenn bufferTime
40 Sekunden beträgt, puffert Flash Player, bis bufferLength
den höheren Wert von 40*2 (80) oder 60 hat; in diesem Fall also bis bufferLength
den Wert 80 hat.
Die bufferLength
-Eigenschaft hat auch ein absolutes Limit. Wenn ein Aufruf von pause()
dazu führt, dass bufferLength
auf mehr als 600 Sekunden ansteigt oder der Wert von bufferTime
* 2, je nachdem, welcher Wert höher ist, löscht Flash Player den Puffer und setzt bufferLength
auf 0 zurück. Wenn bufferTime
zum Beispiel 120 Sekunden beträgt, löscht Flash Player den Puffer, wenn bufferLength
den Wert 600 Sekunden erreicht; wenn bufferTime
360 Sekunden beträgt, löscht Flash Player den Puffer, wenn bufferLength
den Wert 720 Sekunden erreicht.
Tipp: Sie können im Code NetStream.pause()
verwenden, um Daten zu puffern, während Betrachter zum Beispiel einen Werbespot sehen, und dann die Pause aufheben, wenn das Hauptvideo beginnt.
Verwandte API-Elemente
play | () | Methode |
public function play(... arguments):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Spielt eine Mediendatei von einem lokalen Verzeichnis oder einem Webserver ab; spielt eine Mediendatei oder einen Livestream von Flash Media Server ab. Setzt ein NetStatusEvent
-Objekt ab, um Status- und Fehlermeldungen zu melden.
Informationen zu unterstützten Codecs und Dateiformaten finden Sie hier:
- Flash Media Server-Dokumentation
- Exploring Flash Player support for high-definition H.264 video and AAC audio
- FLV/F4V open specification documents
Arbeitsablauf beim Abspielen einer Datei oder eines Livestreams
- Erstellen Sie ein Video-Objekt, das das Video anzeigt, und rufen Sie
addChild()
auf, um es der Bühne hinzuzufügen. Erstellen Sie ein NetConnection-Objekt und rufen Sie
NetConnection.connect()
auf.Um eine Datei von einem lokalen Verzeichnis oder von einem Webserver abzuspielen, übergeben Sie null.
Um eine aufgenommene Datei oder einen Livestream von Flash Media Server abzuspielen, übergeben Sie den URI einer Flash Media Server-Anwendung.
- Rufen Sie die
addEventListener()
-Methode des NetConnection -Objekts auf, einen Listener für dasnetStatus
-Ereignis (NetStatusEvent.NET_STATUS
) hinzuzufügen. - Erstellen Sie für
NetConnection.Connect.Success
ein NetStream-Objekt und übergeben Sie das NetConnection-Objekt an den Konstruktor. - Rufen Sie die
attachNetStream()
-Methode des Video-Objekts auf und übergeben Sie das NetStream-Objekt. Rufen Sie die
play()
-Methode des NetStream-Objekts auf.Um einen Livestream abzuspielen, übergeben Sie den Namen des Streams, der an die
NetStream.publish()
-Methode übergeben wurde.Um eine aufgenommene Datei abzuspielen, übergeben Sie den Dateinamen.
Hinweis: Es hat sich bewährt, immer das Video-Objekt zur Bühne hinzuzufügen, dann das NetStream-Objekt daran anzuhängen, dann die play()
-Methode des NetStream-Objekts aufzurufen.
Aktivieren des Datengenerierungsmodus
Rufen Sie play(null)
auf, um den Datengenerierungsmodus zu aktivieren. In diesem Modus rufen Sie die appendBytes()
-Methode auf, um Daten an NetStream zu senden. Verwenden Sie den Datengenerierungsmodus, um Inhalt über HTTP vom Adobe HTTP Dynamic Streaming Origin Module an einen Apache HTTP-Server zu senden. Clients können beim HTTP Dynamic Streaming schnell einen Suchlauf zu einem beliebigen Punkt in einer Datei ausführen. Das Open Source Media Framework (OSMF) unterstützt HTTP Dynamic Streaming für Video on Demand und Live-Streams. Beispiele zur Verwendung des NetStream-Datengenerierungsmodus können Sie von der OSMF-Quelle herunterladen. Weitere Informationen zu HTTP Dynamic Streaming finden Sie unter HTTP Dynamic Streaming.
Wenn Sie diese Methode ohne Flash Media Server verwenden, gibt es Sicherheitsüberlegungen zu beachten. Eine Datei in der lokal vertrauenswürdigen Sandbox oder der lokalen Sandbox mit Netzwerkzugang kann eine Videodatei aus der remoten Sandbox wiedergeben, aber nicht ohne explizite Erlaubnis in Form einer URL-Richtliniendatei auf die Daten der remoten Datei zugreifen. Sie können auch eine SWF-Datei, die im Flash Player ausgeführt wird, daran hindern, diese Methode aufzurufen, indem Sie auf der HTML-Seite, die den SWF-Inhalt enthält, den Parameter allowNetworking
der Tags object
und embed
festlegen. Weitere Informationen zum Thema Sicherheit finden Sie im Flash Player Developer Center im Abschnitt Sicherheit.
Parameter
... arguments — Abspielen einer lokalen Datei
Der Speicherort der Mediendaten. Das Argument kann ein String, eine Abspielen einer Datei von Flash Media Server
Sie können die Dateiformate wiedergeben, die in der folgenden Tabelle beschrieben sind. Die Syntax ist je nach Dateiformat unterschiedlich.
Aktivieren des Datengenerierungsmodus
Um den Datengenerierungsmodus zu aktivieren, übergeben Sie den Wert Besondere Überlegungen für H.264-Video in AIR 3.0 for iOS Für H.264-Video akzeptieren die iOS-APIs für die Videowiedergabe nur eine URL zu einer Datei oder einem Stream. Sie können keinen Puffer mit H264-Videodaten übergeben, die dekodiert werden sollen. Übergeben Sie je nach Videoquelle das passende Argument an
|
Ereignisse
status: — Wird ausgelöst, wenn versucht wird, Inhalt abzuspielen, der mit DRM (Digital Rights Management) verschlüsselt wurde. Der Wert der code -Eigenschaft ist "DRM.encryptedFLV" .
|
Auslöser
SecurityError — Über lokale nicht vertrauenswürdige SWF-Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können diese Einschränkung umgehen, indem Sie die entsprechende SWF-Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.
| |
ArgumentError — Es muss mindestens ein Parameter angegeben werden.
| |
Error — Das NetStream-Objekt ist ungültig. Dies kann an einer fehlgeschlagenen NetConnection liegen.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
play()
-Methode eine Dateinamenerweiterung angeben.
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Wechselt nahtlos zwischen Dateien mit mehreren Bitraten und ermöglicht einem NetStream die Wiederaufnahme, wenn eine Verbindung getrennt und wiederhergestellt wurde.
Diese Methode ist eine verbesserte Version von NetStream.play()
. Wie die play()
-Methode beginnt die play2()
-Methode mit der Wiedergabe einer Mediendatei oder setzt Mediendateien in eine Warteschlange, um eine Wiedergabeliste zu erstellen. Wenn sie mit Flash Media Server verwendet wird, kann sie auch anfordern, dass der Server zu einer anderen Mediendatei wechselt. Der Übergang in der Clientanwendung erfolgt nahtlos. Die folgenden Funktionen verwenden play2()
-Streamwechsel:
Dynamisches Streaming
Dynamisches Streaming (in Flash Media Server 3.5 und höher unterstützt) ermöglicht Ihnen, einen Stream zu bedienen, der mit mehreren Bitraten kodiert ist. Wenn sich die Netzwerkbedingungen des Betrachters ändern, empfängt er die Bitrate, die die beste Anzeige ermöglicht. Verwenden Sie die NetStreamInfo
-Klasse, um Netzwerkbedingungen zu überwachen und Streams basierend auf den Daten zu wechseln. Sie können auch Streams für Clients mit unterschiedlicher Funktionalität wechseln. Weitere Informationen finden Sie unter „Dynamic streaming“ im Handbuch „Adobe Flash Media Server Developer Guide“.
Adobe hat ein benutzerdefinierte ActionScript-Klasse mit dem Namen DynamicStream entwickelt, die die NetStream-Klasse erweitert. Sie können die DynamicStream-Klasse verwenden, um dynamisches Streamen in einer Anwendung zu implementieren, statt eigenen Code zu schreiben, um Netzwerkbedingungen zu erkennen. Selbst wenn Sie sich dazu entscheiden, Ihren eigenen dynamischen Streamingcode zu schreiben, verwenden Sie die DynamicStream-Klasse als Referenzimplementierung. Laden Sie die Klasse und die Klassendokumentation von der Seite Flash Media Server tools and downloads herunter.
Stream-Neuverbindung
Die Stream-Neuverbindung (unterstützt in Flash Media Server 3.5.3 und höher) ermöglicht Benutzern die ununterbrochene Medienanzeige, selbst wenn ihre Verbindung verloren geht. Das Medium verwendet den Puffer zum Abspielen, während Ihre ActionScript-Logik die Verbindung zum Flash Media Server wiederherstellt. Rufen Sie nach der Neuverbindung NetStream.attach()
auf, um dasselbe NetStream-Objekt mit der neuen NetConnection zu verwenden. Verwenden Sie die NetStream.attach()
-, NetStreamPlayTransitions.RESUME
- und NetStreamPlayTrasitions.APPEND_AND_WAIT
-APIs, um einen Stream neu zu verbinden. Weitere Informationen finden Sie in der Flash Media Server 3.5.3-Dokumentation.
Parameter
param:NetStreamPlayOptions |
Verwandte API-Elemente
preloadEmbeddedData | () | Methode |
public function preloadEmbeddedData(param:NetStreamPlayOptions):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.5, Flash Lite 4 |
Extrahiert DRM-Metadaten aus einer lokal gespeicherten Mediendatei.
Verwenden Sie zunächst preloadEmbeddedMetaData()
, um die für die Offline-Wiedergabe benötigten DRM-Gutscheine herunterzuladen und im Zwischenspeicher abzulegen. Wenn in einer Mediendatei eingebettete DRM-Metadaten entdeckt werden, wird ein DRMContentData-Objekt an die onDRMContentData
-Funktion des NetStream-Clients übergeben. Dieses DRMContentData-Objekt enthält die notwendigen Informationen, um den Gutschein zu erhalten, der zur Wiedergabe des Inhalts erforderlich ist. Übergeben Sie das DRMContentDataObject an die loadVoucher()
-Methode des DRMManagers, um den Gutschein herunterzuladen.
Die Schritte zum Vorabladen eines DRM-Gutscheins sind:
-
Erstellen Sie ein neues NetStream-Objekt zum Vorabladen der Metadaten.
- Verknüpfen Sie eine Callback-Funktion mit der
onDRMContentData
-Eigenschaft des NetStream-Clients
. - Erstellen Sie ein neues NetStreamPlayOptions-Objekt und setzen Sie seine
streamName
-Eigenschaft auf den URL-String der lokalen Videodatei. - Rufen Sie
preloadEmbeddedMetadata()
auf, um das NetStreamPlayOptions-Objekt zu übergeben. - Rufen Sie als Antwort auf das
onDRMContentData
-Callback dieloadVoucher()
-Methode des DRMManagers auf, um das DRMContentData-Objekt zu übergeben. Wenn dieauthenticationMethod
-Eigenschaft des DRMContentData-Objekts den WertuserNameAndPassWord
hat, authentifizieren Sie den Benutzer auf dem Medienrechteserver, bevor Sie den Gutschein laden. - Schließen Sie den NetStream, der zum Vorabladen verwendet wird.
Hinweis: Um zum Vorabladen von Metadaten und zur Wiedergabe von Inhalt das gleiche NetStream-Objekt zu verwenden, warten Sie, bis der onPlayStatus
-Aufruf von der preload-Methode generiert wurde, bevor mit der Wiedergabe begonnen wird.
Heruntergeladene Gutscheine werden in einem lokalen Zwischenspeicher gespeichert. Wenn Inhalt online wiedergegeben wird, werden ebenfalls Gutscheine heruntergeladen und im Zwischenspeicher abgelegt. Wenn eine DRM-geschützte Inhaltsdatei angezeigt wird, wird automatisch ein zwischengespeicherter Gutschein aus dem lokalen Speicher abgerufen. Verwenden Sie den DRMManager, um den Gutschein-Zwischenspeicher zu verwalten.
Hinweise: Das Vorabladen von DRM-Metadaten über HTTP-, HTTPS- oder RTMP-Verbindungen wird nicht unterstützt. Sie können nur Metadaten aus Dateien vorabladen, die im Dateisystem gespeichert sind.
Parameter
param:NetStreamPlayOptions — NetStreamPlayOptions beschreiben die Optionen, die beim Verarbeiten der Inhaltsdatei zu verwenden sind.
|
Verwandte API-Elemente
publish | () | Methode |
public function publish(name:String = null, type:String = null):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Sendet einen Stream mit Audiodaten, Videodaten und Datennachrichten von einem Client an Flash Media Server. Der Stream kann während der Übertragung aufgezeichnet werden. Diese Methode setzt ein NetStatusEvent-Objekt mit Informationen zum Stream ab. Bevor Sie NetStream.publish()
aufrufen, erfassen Sie das "NetConnection.Connect.Success"
-Ereignis, um zu überprüfen, ob die Anwendung erfolgreich eine Verbindung zu Flash Media Server hergestellt hat.
Beim Veröffentlichen können Sie Dateien im FLV- oder F4V-Format aufnehmen. Wenn Sie eine Datei im F4V-Format aufnehmen, verwenden Sie ein Reduzierungs-Tool, um die Datei in einer anderen Anwendung zu bearbeiten oder abzuspielen. Das Tool kann von www.adobe.com/go/fms_tools_de heruntergeladen werden.
Hinweis:Verwenden Sie diese Methode nicht zum Abspielen eines Streams. Um einen Stream wiederzugeben, verwenden Sie die NetStream.play()
-Methode.
Arbeitsablauf beim Veröffentlichen eines Streams
- Erstellen Sie ein NetConnection-Objekt und rufen Sie
NetConnection.connect()
auf. - Rufen Sie
NetConnection.addEventListener()
auf, um auf NetStatusEvent-Ereignisse zu warten. - Erstellen Sie für das
"NetConnection.Connect.Success"
-Ereignis ein NetStream-Objekt und übergeben Sie das NetConnection-Objekt an den Konstruktor. - Um Audio und Video zu erfassen, rufen Sie die
NetStream.attachAudio()
- und dieNetStream.attachCamera()
-Methode auf. - Um einen Stream zu veröffentlichen, verwenden Sie die
NetStream.play()
-Methode. Sie können die veröffentlichten Daten aufzeichnen, sodass Benutzer die Möglichkeit haben, sie zu einem späteren Zeitpunkt wiederzugeben.
Hinweis:Ein NetStream kann einen Stream entweder veröffentlichen oder abspielen, aber nicht beides. Um einen Stream zu veröffentlichen und die Wiedergabe vom Server anzuzeigen, erstellen Sie zwei NetStream-Objekte. Sie können mehrere NetStream-Objekte über ein NetConnection-Objekt senden.
Wenn Flash Media Server einen Stream aufzeichnet, wird eine Datei erstellt. Standardmäßig erstellt der Server ein Verzeichnis mit dem Namen der Anwendung, der an NetConnection.connect()
übergeben wurde, und speichert die Datei in dem Verzeichnis. Mit dem folgenden Code wird zum Beispiel eine Verbindung zur Standardinstanz der Anwendung „lectureseries“ hergestellt und ein Stream namens „lecture“ aufgenommen. Die Datei „lecture.flv“ wird im Verzeichnis applications/lectureseries/streams/_definst_ directory aufgenommen:
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"); } }
Das folgende Beispiel stellt eine Verbindung zur Instanz „monday“ derselben Anwendung her. Die Datei „lecture.flv“ wird im Verzeichnis /applications/lectureseries/streams/monday aufgenommen:
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"); } }
Parameter
name:String (default = null ) — Ein String, der den Stream identifiziert. Clients, die diesen Stream abonnieren, übergeben beim Aufruf von NetStream.play() diesen Namen. Setzen Sie keinen Schrägstrich (/) hinter den Stream-Namen. Verwenden Sie zum Beispiel nicht den Stream-Namen "bolero/" .
Sie können Dateien in den im Folgenden aufgeführten Formaten aufzeichnen (Sie können
| |||||||||||||
type:String (default = null ) — Ein String, der angibt, wie der Stream veröffentlicht wird. Gültige Werte sind "record ", "append ", "appendWithGap " und "live ". Der Standardwert ist "live ".
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
Wenn Sie dieses Beispiel ausführen möchten, muss eine Kamera an Ihren Computer angeschlossen sein. Außerdem müssen Sie der Bibliothek eine Button-Komponente und eine Label-Komponente hinzufügen.
Die Anwendung verfügt über eine Schaltfläche, die einen Stream veröffentlicht (ihn an Flash Media Server sendet), nachdem die Anwendung erfolgreich eine Verbindung zum Server hergestellt hat. Die Anwendung spielt den Stream vom Server erst ab, nachdem der Stream erfolgreich veröffentlicht wurde. NetStatusEvent
gibt ein info
-Objekt mit einer code
-Eigenschaft zurück, die diese Fälle spezifiziert. Die netStatusHandler
-Funktion verarbeitet diese Ereignisse für die NetConnection- und NetStream-Klasse.
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt an, ob eingehende Audiodaten im Stream wiedergegeben werden. Diese Methode ist nur für Clients verfügbar, die den angegebenen Stream abonniert haben. Dem Herausgeber des Streams steht sie nicht zur Verfügung. Rufen Sie diese Methode vor oder nach dem Aufruf der NetStream.play()
-Methode auf. Fügen Sie diese Methode zum Beispiel einer Schaltfläche an, mit der der Benutzer den Ton aus- und einschalten kann. Verwenden Sie diese Methode nur bei Unicast-Streams, die von Flash Media Server wiedergegeben werden. Diese Methode funktioniert nicht für RTMFP-Multicast-Streams oder bei Verwendung der NetStream.appendBytes()
-Methode.
Parameter
flag:Boolean — Gibt an, ob eingehende Audiodaten im Stream wiedergegeben werden (true ) oder nicht (false ). Der Standardwert ist true . Wenn der angegebene Stream nur Audiodaten enthält, wird NetStream.time nicht weiter erhöht, wenn Sie false übergeben.
|
receiveVideo | () | Methode |
public function receiveVideo(flag:Boolean):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt an, ob eingehende Videodaten im Stream wiedergegeben werden. Diese Methode ist nur für Clients verfügbar, die den angegebenen Stream abonniert haben. Dem Herausgeber des Streams steht sie nicht zur Verfügung. Rufen Sie diese Methode vor oder nach dem Aufruf der NetStream.play()
-Methode auf. Fügen Sie diese Methode zum Beispiel einer Schaltfläche an, mit der der Benutzer Video ein- und ausblenden kann. Verwenden Sie diese Methode nur bei Unicast-Streams, die von Flash Media Server wiedergegeben werden. Diese Methode funktioniert nicht für RTMFP-Multicast-Streams oder bei Verwendung der NetStream.appendBytes()
-Methode.
Parameter
flag:Boolean — Gibt an, ob eingehende Videodaten in diesem Stream wiedergegeben werden (true ) oder nicht (false ). Der Standardwert ist true . Wenn der angegebene Stream nur Videodaten enthält, wird NetStream.time nicht weiter erhöht, wenn Sie false übergeben.
|
receiveVideoFPS | () | Methode |
public function receiveVideoFPS(FPS:Number):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Gibt die Bildrate für eingehendes Video an. Diese Methode ist nur für Clients verfügbar, die den angegebenen Stream abonniert haben. Dem Herausgeber des Streams steht sie nicht zur Verfügung. Rufen Sie diese Methode vor oder nach dem Aufruf der NetStream.play()
-Methode auf. Rufen Sie diese Methode zum Beispiel auf, um Benutzern das Festlegen der Videobildfrequenz zu ermöglichen. Mit NetStream.currentFPS
können Sie die aktuelle Bildrate zu bestimmen. Um den Videoempfang zu beenden, übergeben Sie 0
.
Wenn Sie einen Wert an den FPS-Parameter übergeben, um die Bildrate des Videos zu begrenzen, versucht Flash Media Server, die Bildrate zu verringern und gleichzeitig die Integrität des Videos zu erhalten. Jeweils zwischen zwei Schlüsselbildern sendet der Server die Mindestanzahl Bilder, um die gewünschte Bildrate zu erreichen. Beachten Sie, dass Zwischenbilder (I-frames) direkt angrenzend gesendet werden müssen, andernfalls ist das Video fehlerhaft. Deshalb wird die gewünschte Anzahl Bilder sofort und angrenzend an einen Keyframe gesendet. Da die Bilder nicht gleichmäßig verteilt sind, erscheint die Bewegung in Segmenten fließend, unterbrochen von kurzen Halts.
Verwenden Sie diese Methode nur bei Unicast-Streams, die von Flash Media Server wiedergegeben werden. Diese Methode funktioniert nicht für RTMFP-Multicast-Streams oder bei Verwendung der NetStream.appendBytes()
-Methode.
Parameter
FPS:Number — Gibt die Bildrate pro Sekunde an, bei der das eingehende Video abgespielt wird.
|
resetDRMVouchers | () | Methode |
public static function resetDRMVouchers():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 11.8, Flash Lite 4 |
In AIR-Anwendungen werden dadurch alle lokal gespeicherten Digital Rights Management (DRM)-Gutscheindaten gelöscht. Für browserbasierte Anwendungen ist dies nur während 3322-Fehlern verfügbar und funktioniert wie das Einstellungsbedienfeld von Protected Content Playback.
Die Anwendung muss alle erforderlichen Gutscheine erneut vom Medienrechteserver herunterladen, damit der Benutzer auf zugriffsgeschützten Inhalt zugreifen kann. Der Aufruf dieser Funktion hat den gleichen Effekt wie das Aufrufen der resetDRMVouchers()
-Funktion des DRMManager-Objekts.
Auslöser
IOError — Die Gutscheindaten können nicht gelöscht werden.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
NetStream.resetDRMVouchers();
resume | () | Methode |
public function resume():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Setzt die Wiedergabe eines angehaltenen Videostreams fort. Wenn die Wiedergabe bereits läuft, hat der Aufruf dieser Methode keine Auswirkung.
Verwandte API-Elemente
seek | () | Methode |
public function seek(offset:Number):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Sucht das Schlüsselbild (in der Videobranche auch „I-Frame“ genannt), das der angegebenen Position am nächsten ist. Das Schlüsselbild wird mit einem Offset (einer Verschiebung) in Sekunden ab dem Beginn des Streams platziert.
Videostreams werden normalerweise mit zwei Arten von Bildern kodiert: Schlüsselbildern (oder I-Frames) und P-Frames. Ein Schlüsselbild enthält ein gesamtes Bild, während ein P-Frame ein Zwischenbild ist, das zusätzliche Videoinformationen zwischen Schlüsselbildern bietet. Ein Video-Stream enthält in der Regel alle 10 bis 50 Bilder ein Schlüsselbild.
Flash Media Server verfügt über verschiedene Arten von Suchlaufverhalten: erweiterter Suchlauf und intelligenter Suchlauf.
Erweiterter Suchlauf
Der erweiterte Suchlauf ist standardmäßig aktiviert. Um den erweiterten Suchlauf zu deaktivieren, stellen Sie auf dem Flash Media Server das EnhancedSeek
-Element in der Application.xml
-Konfigurationsdatei auf false
ein.
Wenn der erweiterte Suchlauf aktiviert ist, generiert der Server ein neues Schlüsselbild bei offset
, basierend auf dem vorherigen Schlüsselbild und ggf. dazwischenliegenden P-Frames. Durch das Generieren von Schlüsselbildern wird auf dem Server jedoch eine hohe Verarbeitungslast erzeugt, und im generierten Schlüsselbild kann es zu Verzerrungen kommen. Wenn der Videocodec On2 verwendet wird, werden das Schlüsselbild vor dem Suchpunkt sowie alle P-Frames zwischen dem Schlüsselbild und dem Suchpunkt an den Client gesendet.
Wenn der erweiterte Suchlauf deaktiviert ist, beginnt der Server ab dem nächstliegenden Schlüsselbild mit dem Streaming. Angenommen, ein Video hat Schlüsselbilder bei 0 Sekunden und bei 10 Sekunden. Ein Suchlauf von 4 Sekunden startet die Wiedergabe bei 4 Sekunden unter Verwendung des Schlüsselbilds bei 0 Sekunden. Das Video bleibt stehen, bis das nächste Schlüsselbild bei 10 Sekunden erreicht wird. Um bessere Suchläufe zu erzielen, müssen Sie das Schlüsselbildintervall verringern. Im normalen Suchmodus können Sie das Video nicht an einem Punkt zwischen den Schlüsselbildern starten.
Intelligenter Suchlauf
Um den intelligenten Suchlauf zu aktivieren, stellen Sie NetStream.inBufferSeek
auf true
ein.
Der intelligente Suchlauf ermöglicht Flash Player, innerhalb eines vorhandenen Rücklauf- und Vorlaufpuffer zu suchen. Wenn der intelligente Suchlauf deaktiviert ist, leert Flash Player bei jedem Aufruf von seek()
den Puffer und fordert Daten vom Server an. Weitere Informationen finden Sie im Abschnitt zu NetStream.inBufferSeek
.
Suchläufe im Datengenerierungsmodus
Wenn Sie seek()
für einen NetStream im Datengenerierungsmodus aufrufen, werden alle an appendBytes()
übergebenen Daten verworfen (nicht gepuffert, nicht im Teilnachrichten-FIFO akkumuliert oder nach Suchpunkten analysiert), bis Sie appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)
oder appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK)
aufrufen, um den Parser zurückzusetzen. Informationen zum Datengenerierungsmodus finden Sie unter NetStream.play()
.
Parameter
offset:Number — Der ungefähre Zeitpunkt in Sekunden, zu dem der Abspielkopf in einer Videodatei verschoben werden soll. Wenn bei Verwendung von Flash Media Server <EnhancedSeek> in der Konfigurationsdatei Application.xml auf den Wert true gesetzt wird, generiert der Server ein Schlüsselbild bei offset .
|
Verwandte API-Elemente
send | () | Methode |
public function send(handlerName:String, ... arguments):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Sendet eine Nachricht an alle Clients mit Abonnement über den veröffentlichten Stream. Diese Methode ist nur für den Herausgeber des angegebenen Streams verfügbar. Diese Methode steht nur zur Verwendung mit Flash Media Server zur Verfügung. Erstellen Sie eine Prozedur für das NetStream
-Objekt, zum Beispiel ns.HandlerName
, um diese Meldung zu verarbeiten und darauf zu reagieren.
Methoden und ihre Daten, Objektprototypvariablen und nicht zählbare Variablen werden in Flash Player oder AIR nicht serialisiert. Zur Anzeige von Objekten serialisiert Flash Player oder AIR lediglich den Pfad.
Sie können die send()
-Methode aufrufen, um einem für Flash Media Server veröffentlichten Live-Stream Datenschlüsselbilder hinzuzufügen. Ein Datenschlüsselbild ist eine Meldung, die ein Herausgeber einem Live-Stream hinzufügt. Datenschlüsselbilder werden normalerweise verwendet, um einem Live-Stream Metadaten hinzuzufügen, bevor die Daten von Kamera und Mikrofon für den Stream erfasst werden. Ein Herausgeber kann jederzeit ein Datenschlüsselbild hinzufügen, während der Live-Stream veröffentlicht wird. Das Datenschlüsselbild wird im Speicher des Servers gespeichert, solange der Herausgeber mit dem Server verbunden ist.
Clients, die den Live-Stream vor dem Hinzufügen eines Datenschlüsselbilds abonniert haben, erhalten das Schlüsselbild sobald es hinzugefügt wurde. Clients, die den Live-Stream nach dem Hinzufügen eines Datenschlüsselbilds abonnieren, erhalten das Schlüsselbild sobald sie den Stream abonnieren.
Um einem Live-Stream, der an Flash Media Server gesendet wird, ein Schlüsselbild mit Metadaten hinzuzufügen, verwenden Sie @setDataFrame
als Prozedurnamen, gefolgt von zwei zusätzlichen Argumenten, zum Beispiel:
var ns:NetStream = new NetStream(nc); ns.send("@setDataFrame", "onMetaData", metaData);
Das Argument @setDataFrame
verweist auf eine spezielle Prozedur, die in Flash Media Server integriert ist. Das Argument onMetaData
ist der Name einer Callback-Funktion in Ihrer Client-Anwendung, die auf das onMetaData
-Ereignis wartet und die Metadaten abruft. Das dritte Element, metaData
, ist eine Instanz von Object
oder Array
mit Eigenschaften, die die Metadatenwerte definieren.
Mit @clearDataFrame
löschen Sie ein Schlüsselbild mit Metadaten, das bereits im Stream gesendet wurde:
ns.send("@clearDataFrame", "onMetaData");
Parameter
handlerName:String — Die zu sendende Nachricht, auch der Name der ActionScript-Prozedur für den Empfang der Nachricht. Der Prozedurname darf nur eine Ebene umfassen (d. h. die Form übergeordnet/untergeordnet ist nicht zulässig) und hängt vom Stream-Objekt ab. Verwenden Sie keine reservierten Begriffe als Prozedurnamen. Wenn Sie beispielsweise close als Prozedurnamen verwenden, schlägt die Methode fehl. Mit Flash Media Server verwenden Sie @setDataFrame , um einem Live-Stream ein Schlüsselbild mit Metadaten hinzuzufügen bzw. @clearDataFrame , um ein Schlüsselbild zu entfernen.
| |
... arguments — Optionale Argumente beliebigen Typs. Diese werden serialisiert, über die Verbindung gesendet und von der Empfangsprozedur in derselben Reihenfolge empfangen. Wenn es sich bei dem Parameter um ein zyklisches Objekt handelt (z. B. eine verknüpfte zyklische Liste), werden die Verweise bei der Serialisierung korrekt verarbeitet. Wenn bei der Verwendung mit Flash Media Server @setDataFrame das erste Argument ist, verwenden Sie onMetaData als zweites Argument; für das dritte Argument übergeben Sie eine Instanz von Object oder Array , in der die Metadaten als Eigenschaften festgelegt wurden. Im Flash Media Server Developer Guide finden Sie eine Liste mit vorgeschlagenen Eigenschaftsnamen. Mit @clearDataFrame als erstem Argument, verwenden Sie onMetaData als zweites Argument und kein drittes Argument.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
NetStream
-Objekte erstellt. Eines veröffentlicht einen Live-Stream an den Server, während das andere den Stream abonniert.
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
-Ereignisprozedur definieren. Die Ereignisprozedur onMetaData
ist nicht bei addEventListener()
registriert; es handelt sich vielmehr um eine Callback-Funktion mit dem Namen onMetaData
, zum Beispiel:
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Lite 4 |
Senden die DRM-Authentifizierungsdaten, die für die Anzeige des verschlüsselten Inhalts erforderlich sind.
Die setDRMAuthenticationCredentials()
-Methode muss Benutzerdaten zur Verfügung stellen, die mit denjenigen übereinstimmen, die vom Content Provider oder dem Proxyserver erkannt und akzeptiert werden. Dies sind dieselben Benutzerdaten, die der Benutzer verwendet, um die Berechtigung zum Anzeigen des Inhalts zu bekommen.
Parameter
userName:String — Ein gültiger Benutzername.
| |
password:String — Die Kennwortdaten, die dem angegebenen Benutzernamen zugeordnet sind.
| |
type:String — Ein String, der angibt, welche Art von Authentifizierungsdaten angegeben werden. Gültige Werte sind "drm" und "proxy" . Der Standardwert ist "drm" .
|
Verwandte API-Elemente
step | () | Methode |
public function step(frames:int):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Geht in Relation zum aktuell angezeigten Bild die angegebene Anzahl von Bildern vor oder zurück. Geben Sie eine positive Zahl an, um vorzugehen, oder eine negative Zahl, um zurückzugehen. Rufen Sie diese Methode auf, um exakte Schnellvorlauf- oder Rücklauffunktionalität zu erstellen.
Hinweis: Diese Methode wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Diese Methode ist nur verfügbar, wenn Daten von Flash Media Server 3.5.3 oder höher gestreamt werden und wenn NetStream.inBufferSeek
den Wert true
hat. Außerdem muss sich der Ziel-Frame im Puffer befinden. Wenn zum Beispiel das zurzeit angezeigte Bild das Bild mit der Nummer 120 ist und Sie einen Wert von 1000 angeben, schlägt die Methode fehl, wenn sich das Bild mit der Nummer 1120 nicht im Puffer befindet.
Diese Methode ist zur Verwendung mit den Methoden pause()
oder togglePause()
gedacht. Wenn Sie während der Wiedergabe ohne Pause 10 Bilder vor- oder zurückgehen, bemerken Sie die Schritte möglicherweise nicht oder sie sehen wie eine Störung aus. Wenn Sie pause()
oder togglePause
aufrufen, wird das Audio unterdrückt.
Wenn der Aufruf von NetStream.step()
erfolgreich ist, wird ein NetStatusEvent gesendet, wobei "NetStream.Step.Notify" als Wert für die code
-Eigenschaft des Info-Objekts angegeben wird.
Parameter
frames:int |
Verwandte API-Elemente
togglePause | () | Methode |
public function togglePause():void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hält die Wiedergabe eines Streams an oder setzt sie fort. Beim ersten Aufruf dieser Methode wird die Wiedergabe angehalten und beim zweiten Aufruf fortgesetzt. Mit dieser Methode können Sie Benutzern ermöglichen, die Wiedergabe über dieselbe Schaltfläche anzuhalten und fortzusetzen.
Verwandte API-Elemente
asyncError | Ereignis |
flash.events.AsyncErrorEvent
Eigenschaft AsyncErrorEvent.type =
flash.events.AsyncErrorEvent.ASYNC_ERROR
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird ausgelöst, wenn eine Ausnahme asynchron ausgelöst wird – das heißt, aus nativem asynchronem Code. Dieses Ereignis wird ausgelöst, wenn ein Server eine Methode auf einem Client aufruft, die nicht definiert ist.
Die KonstanteAsyncErrorEvent.ASYNC_ERROR
definiert den Wert der type
-Eigenschaft eines asyncError
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Objekt, das das Ereignis auslöst. |
error | Der Fehler, der das Ereignis ausgelöst hat. |
Verwandte API-Elemente
drmAuthenticate | Ereignis |
flash.events.DRMAuthenticateEvent
Eigenschaft DRMAuthenticateEvent.type =
flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Lite 4 |
Wird ausgelöst, wenn ein NetStream-Objekt versucht, mit DRM (Digital Rights Management) verschlüsselten Inhalt abzuspielen, für den Benutzerdaten zur Authentifizierung erforderlich sind.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Authentifizieren Sie den Benutzer mit der setDRMAuthenticationCredentials()
-Methode des NetStream-Objekts. Wenn die Benutzerauthentifizierung fehlschlägt, startet die Anwendung einen neuen Versuch und setzt ein neues DRMAuthenticateEvent-Ereignis für das NetStream-Objekts ab.
DRMAuthenticateEvent.DRM_AUTHENTICATE
-Konstante definiert den Wert der type
-Eigenschaft eines DRMAuthenticateEvent-Objekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
authenticationType | Zeigt an, ob die angegebenen Benutzerdaten für die Authentifizierung für den Flash Media Rights Management Server (FMRMS) oder eine Proxyserver bestimmt sind. |
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
header | Der verschlüsselte Inhaltsdateiheader, der vom Server bereitgestellt wird. |
netstream | Das NetStream-Objekt, das dieses Ereignis eingeleitet hat. |
passwordPrompt | Eine vom Server bereitgestellte Eingabeaufforderung für das Kennwort. |
target | Das NetStream-Objekt. |
urlPrompt | Eine vom Server bereitgestellte Eingabeaufforderung für eine anzuzeigende URL. |
usernamePrompt | Eine vom Server bereitgestellte Eingabeaufforderung für den Benutzernamen. |
Verwandte API-Elemente
drmError | Ereignis |
flash.events.DRMErrorEvent
Eigenschaft DRMErrorEvent.type =
flash.events.DRMErrorEvent.DRM_ERROR
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Wird ausgelöst, wenn ein NetStream-Objekt versucht, eine mit DRM (Digital Rights Management) verschlüsselte Datei abzuspielen und dabei ein DRM-Fehler auftritt. Ein DRMErrorEvent-Objekt wird zum Beispiel ausgelöst, wenn die Benutzerautorisierung fehlschlägt. Dies kann daran liegen, dass der Benutzer die Berechtigung zum Anzeigen des Inhalts nicht erworben hat oder dass der Content Provider das Anzeigen der Anwendung nicht unterstützt.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Die KonstanteDRMErrorEvent.DRM_ERROR
definiert den Wert der type
-Eigenschaft eines drmError
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
errorID | Ein dem Problem zugewiesener Fehlercode im Zahlenformat. |
subErrorID | Ein Fehlercode, der ausführlichere Informationen zum zugrundeliegenden Problem angibt. |
target | Das NetStream-Objekt. |
Verwandte API-Elemente
drmStatus | Ereignis |
flash.events.DRMStatusEvent
Eigenschaft DRMStatusEvent.type =
flash.events.DRMStatusEvent.DRM_STATUS
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 10.1, Flash Lite 4 |
Wird ausgelöst, wenn der DRM-verschlüsselte Inhalt (Digital Rights Management) abgespielt wird (wenn der Benutzer authentifiziert wurde und berechtigt ist, den Inhalt abzuspielen).
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Das DRMStatusEvent-Objekt enthält Informationen zum Gutschein, zum Beispiel ob der Inhalt offline verfügbar ist oder wann der Gutschein abläuft und Benutzer den Inhalt nicht mehr anzeigen können.
DieDRMStatusEvent.DRM_STATUS
-Konstante definiert den Wert der type
-Eigenschaft eines drmStatus
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
detail | Ein String, der den Kontext des Statusereignisses erläutert. |
isAnonymous | Gibt an, ob der mit DRM-Verschlüsselung geschützte Inhalt verfügbar ist, ohne dass der Benutzer Authentifizierungsdaten eingeben muss. |
isAvailableOffline | Gibt an, ob der mit DRM-Verschlüsselung geschützte Inhalt offline verfügbar ist. |
offlineLeasePeriod | Die verbleibende Anzahl der Tage, an denen der Inhalt offline angezeigt werden kann. |
Richtlinien | Ein benutzerdefiniertes Objekt des DRM-Statusereignisses. |
target | Das NetStream-Objekt. |
voucherEndDate | Das absolute Datum, an dem der Gutschein abläuft und der Inhalt nicht mehr von Benutzern angezeigt werden kann. |
contentData | Die DRMContentData für den Inhalt. |
voucher | Das DRMVoucher-Objekt für den Inhalt. |
isLocal | Gibt an, ob der Inhalt im lokalen Dateisystem gespeichert ist. |
Verwandte API-Elemente
ioError | Ereignis |
flash.events.IOErrorEvent
Eigenschaft IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird beim Auftreten eines I/O-Fehlers ausgelöst, durch den ein Netzwerkvorgang fehlschlägt.
Definiert den Wert der Eigenschafttype
eines ioError
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
errorID | Die Referenznummer des spezifischen Fehlers (nur AIR). |
target | Das Netzwerkobjekt, bei dem der Eingabe/Ausgabe-Fehler auftritt. |
text | Der als Fehlermeldung anzuzeigende Text. |
mediaTypeData | Ereignis |
flash.events.NetDataEvent
Eigenschaft NetDataEvent.type =
flash.events.NetDataEvent
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.3, AIR 2.7 |
Wird abgesetzt, wenn Video abgespielt wird und bestimmte Meldungstypen verarbeitet werden.
Ein NetDataEvent wird für die folgenden Nachrichten abgesetzt:
- onCuePoint
- onImageData
- onMetaData
- onPlayStatus (für den Code NetStream.Play.Complete)
- onTextData
- onXMPData
Hinweis: Dieses Ereignis wird nicht von Inhalten abgesetzt, die in Flash Player im Browser unter Android oder Blackberry Tablet OS oder in AIR unter iOS ausgeführt werden.
netStatus | Ereignis |
flash.events.NetStatusEvent
Eigenschaft NetStatusEvent.type =
flash.events.NetStatusEvent.NET_STATUS
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wird ausgelöst, wenn der Status oder die Fehlerbedingung eines NetStream-Objekts protokolliert wird. Das Ereignis netStatus
enthält die Eigenschaft info
. Dabei handelt es sich um ein Informationsobjekt mit spezifischen Informationen über das Ereignis, z. B., ob ein Verbindungsversuch erfolgreich war oder fehlgeschlagen ist.
type
eines netStatus
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
info | Ein Objekt mit Eigenschaften, die den Status oder die Fehlerbedingung des Objekts beschreiben. |
target | Das NetConnection- oder NetStream-Objekt, dessen Status protokolliert wird. |
Verwandte API-Elemente
onCuePoint | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn während des Abspielens einer Videodatei ein eingebetteter Cue-Point erreicht wird. Sie können den Listener verwenden, um Aktionen in Ihrem Code auszulösen, wenn das Video einen bestimmten Cue-Punkt erreicht, an dem Sie andere Aktionen in Ihrer Anwendung mit Videoabspielereignissen synchronisieren können. Weitere Informationen zu Videoformaten, die vom Flash Media Server unterstützt werden, finden Sie unter www.adobe.com/go/learn_fms_fileformats_de.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
onCuePoint
ist eigentlich eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie auf ein Datenereignis reagiert, wenn entweder mit dem Media Flash Player gestreamt oder eine FLV-Datei wiedergegeben wird. Weitere Informationen finden Sie in der Beschreibung der NetStream-Klasse. Sie können die addEventListener()
-Methode bzw. andere EventDispatcher-Methoden nicht verwenden, um onCuePoint
zu überwachen oder als ein Ereignis zu verarbeiten. Definieren Sie eine Rückruffunktion und fügen Sie sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Erstellen Sie eine Unterklasse von NetStream und definieren Sie Ihre Ereignisprozedur in der Unterklasse. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Der verknüpfte Ereignis-Listener wird nach dem Aufruf der NetStream.play()
-Methode, aber noch vor dem Vorlauf des Abspielkopfes ausgelöst.
Sie können die folgenden Arten von Cue-Points in eine Videodatei einbetten:
- Ein Navigations-Cue-Point gibt ein Schlüsselbild innerhalb der Videodatei an, wobei die
time
-Eigenschaft des Cue-Points exakt dem Schlüsselbild entspricht. Navigations-Cue-Points werden oft als Lesezeichen oder Eingangspunkte verwendet, anhand derer die Benutzer durch die Videodatei navigieren können. - Ein Ereignis-Cue-Point gibt eine Zeit an. Die Zeit kann einem bestimmten Schlüsselbild entsprechen, dies muss jedoch nicht so sein. Ein Ereignis-Cue-Point steht in der Regel für einen Zeitpunkt eines Ereignisses im Video, das zur Auslösung anderer Anwendungsereignisse verwendet werden kann.
Das onCuePoint
-Ereignisobjekt hat folgende Eigenschaften:
Eigenschaft | Beschreibung |
---|---|
name | Der dem Cue-Point bei der Einbettung in die Videodatei zugewiesene Name. |
parameters | Ein assoziatives Array mit Name/Wert-Paar-Strings, die für diesen Cue-Punkt spezifiziert sind. Für Name und Wert des Parameters können beliebige Strings verwendet werden. |
time | Die Angabe des Zeitpunkts in Sekunden, zu dem der Cue-Point während der Wiedergabe im Video auftritt. |
type | Der Typ des erreichten Cue-Points (Navigation oder Ereignis). |
Sie können Cue-Points beim ersten Kodieren der Videodatei oder beim Importieren eines Videoclips in das Flash-Authoring-Tool mit dem Videoimportassistenten einfügen.
Das Ereignis onMetaData
ruft auch Informationen über die Cue-Points in einer Videodatei ab. Das Ereignis onMetaData
ruft jedoch Informationen über alle Cue-Points ab, bevor die Wiedergabe des Videos gestartet wird. Das Ereignis onCuePoint
ruft dagegen Informationen über einen einzelnen Cue-Point zu dem für diesen Cue-Point festgelegten Zeitpunkt während der Wiedergabe ab.
Wenn Sie bei einem bestimmten Cue-Point zu dem Zeitpunkt, zu dem er in der Wiedergabe auftritt, eine Aktion im Code auslösen möchten, verwenden Sie das Ereignis onCuePoint
.
Mit der für das Ereignis onMetaData
bereitgestellten Liste von Cue-Points können Sie den Benutzern ermöglichen, die Wiedergabe an vordefinierten Punkten im Videostream zu starten. Übergeben Sie den Wert der time
-Eigenschaft des Cue-Point an die Methode NetStream.seek()
, um die Wiedergabe des Videos ab diesem Cue-Point zu starten.
Beispiel ( Verwendung dieses Beispiels )
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); }
Verwandte API-Elemente
onDRMContentData | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.5, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn AIR DRM-Inhalts-Metadaten extrahiert, die in einer Mediendatei eingebettet sind.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Ein DRMContentData-Objekt enthält die notwendigen Informationen, um einen Gutschein zu erhalten, der zur Wiedergabe einer DRM-geschützten Mediendatei erforderlich ist. Verwenden Sie die DRMManager-Klasse, um den Gutschein mit diesen Informationen herunterzuladen.
onDRMContentData
ist eine Eigenschaft des NetStream.client
-Objekts. Diese Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie beim Vorabladen eingebetteter Daten aus einer lokalen Mediendatei auf ein Datenereignis reagiert. Weitere Informationen finden Sie in der Beschreibung der NetStream-Klasse. Sie können die addEventListener()
-Methode bzw. andere EventDispatcher-Methoden nicht verwenden, um onDRMContentData
zu überwachen oder als ein Ereignis zu verarbeiten. Stattdessen müssen Sie eine einzelne Callback-Funktion definieren und direkt an eines der folgenden Objekte anhängen:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Sie können jedoch eine Unterklasse für „NetStream“ erstellen und die Ereignisprozedur in der Unterklasse definieren oder die Unterklasse als dynamisch festlegen und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Verwandte API-Elemente
onImageData | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn Flash Player Bilddaten als Bytearray erhält, das in einer Mediendatei eingebettet ist, die aktuell abgespielt wird. Die Bilddaten können entweder JPEG-, PNG- oder GIF-Inhalt erzeugen. Verwenden Sie die flash.display.Loader.loadBytes()
-Methode, um das Bytearray in ein Anzeigeobjekt zu laden.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
onImageData
ist eigentlich eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie auf ein Datenereignis reagiert, wenn entweder mit dem Media Flash Player gestreamt oder eine FLV-Datei wiedergegeben wird. Weitere Informationen finden Sie in der Beschreibung der NetStream-Klasse. Sie können die addEventListener()
-Methode bzw. andere EventDispatcher-Methoden nicht verwenden, um onImageData
zu überwachen oder als ein Ereignis zu verarbeiten. Definieren Sie eine einzelne Rückruffunktion und fügen Sie sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Erstellen Sie eine Unterklasse von NetStream und definieren Sie Ihre Ereignisprozedur in der Unterklasse. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Der verknüpfte Ereignis-Listener wird nach dem Aufruf der NetStream.play()
-Methode, aber noch vor dem Vorlauf des Abspielkopfes ausgelöst.
Das onImageData-Ereignisobjekt enthält die Bilddaten als ein Bytearray, das über einen AMF0-Datenkanal gesendet wird.
Beispiel ( Verwendung dieses Beispiels )
Netstream.client
-Eigenschaft, um die Callback-Funktionen für onTextData
und onImageData
zu verarbeiten. Die onImageDataHandler()
-Funktion verwendet das onImageData-Ereignisobjekt imageData
, um das Bytearray zu speichern. Zusätzlich verwendet die onTextDataHandler()
-Funktion das onTextData-Ereignisobjekt textData
, um Teile von Textdaten zu speichern (jeder Datenteil ist eine Eigenschaft des textData
-Objekts).
Sie müssen den "yourURL"
-Speicherort im Code durch einen realen Speicherort für eine Mediendatei mit Text- oder Bildmetadaten ersetzen.
Sie können auch Bild- und Textdaten mithilfe einer benutzerdefinierten Klasse verarbeiten. Weitere Informationen und Beispiele finden Sie im Artikel Verarbeiten von Metadaten und Cue-Points in Flash Video.
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var my_video:Video = new Video(); addChild(my_video); var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
Verwandte API-Elemente
onMetaData | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn Flash Player beschreibende Informationen erhält, die in ein Video eingebettet sind, das aktuell abgespielt wird. Weitere Informationen zu Videoformaten, die vom Flash Media Server unterstützt werden, finden Sie unter www.adobe.com/go/learn_fms_fileformats_de.
onMetaData
ist eigentlich eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie auf ein Datenereignis reagiert, wenn entweder mit dem Media Flash Player gestreamt oder eine FLV-Datei wiedergegeben wird. Weitere Informationen finden Sie in der NetStream-Klassenbeschreibung und der NetStream.client
-Eigenschaft. Die addEventListener()
-Methode und die übrigen EventDispatcher-Methoden können nicht verwendet werden, um auf onMetaData
zu warten oder diese Eigenschaft als Ereignis zu verarbeiten. Definieren Sie eine einzelne Rückruffunktion und fügen Sie sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Sie können eine Unterklasse von NetStream erstellen und Ihre Ereignisprozedur in der Unterklasse definieren. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Das Dienstprogramm Flash Video Exporter (ab Version 1.1) bettet die Dauer, das Erstellungsdatum, die Datenrate und andere Angaben in die Videodatei selbst ein. Von anderen Videokodierern werden andere Metadaten eingebettet.
Der verknüpfte Ereignis-Listener wird nach dem Aufruf der NetStream.play()
-Methode, aber noch vor dem Vorlauf des Abspielkopfes ausgelöst.
Häufig ist die in den Stream-Metadaten eingebettete Längenangabe nur ein ungefährer Wert. Das bedeutet, dass dieser Wert nicht immer mit dem Wert der Eigenschaft NetStream.time
übereinstimmt, wenn der Abspielkopf das Ende des Videostreams erreicht hat.
Das Ereignisobjekt, das an die onMetaData-Ereignisprozedur übergeben wurde, enthält eine Eigenschaft für jeden Textdatenteil.
Beispiel ( Verwendung dieses Beispiels )
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); }
Verwandte API-Elemente
onPlayStatus | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn ein NetStream-Objekt einen Stream vollständig abgespielt hat. Das verknüpfte Ereignisobjekt liefert zusätzliche Informationen zu dem, was vom netStatus
-Ereignis zurückgegeben wird. Sie können diese Eigenschaft verwenden, um Aktionen in Ihrem Code auszulösen, wenn ein NetStream-Objekt von einem Stream zu einem anderen Stream in einer Wiedergabeliste gewechselt hat (wie durch das Informationsobjekt NetStream.Play.Switch
angegeben) oder wenn ein NetStream-Objekt bis zum Ende abgespielt wurde (wie durch das Informationsobjekt NetStream.Play.Complete
angegeben).
onPlayStatus
ist eigentlich eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie auf ein Datenereignis reagiert, wenn entweder mit dem Media Flash Player gestreamt oder eine FLV-Datei wiedergegeben wird. Weitere Informationen finden Sie in der Beschreibung der NetStream-Klasse. Sie können die addEventListener()
-Methode bzw. andere EventDispatcher-Methoden nicht verwenden, um onPlayStatus
zu überwachen oder als ein Ereignis zu verarbeiten. Definieren Sie eine Rückruffunktion und fügen Sie sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Erstellen Sie eine Unterklasse von NetStream und definieren Sie Ihre Ereignisprozedur in der Unterklasse. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Dieses Ereignis kann ein Informationsobjekt mit den folgenden Eigenschaften zurückgeben:
Code-Eigenschaft | Level-Eigenschaft | Bedeutung |
---|---|---|
NetStream.Play.Switch | "status" | Der Abonnent wechselt von einem Stream zu einem anderen Stream in der Wiedergabeliste. |
NetStream.Play.Complete | "status" | Die Wiedergabe ist abgeschlossen. |
NetStream.Play.TransitionComplete | "status" | Der Abonnent wechselt als Ergebnis des Stream-Bitratenwechsels zu einem neuen Stream. |
Verwandte API-Elemente
onSeekPoint | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2, Flash Lite 4 |
Wird synchron von appendBytes()
aufgerufen, wenn der Append-Bytes-Parser auf einen Punkt trifft, den er als ansteuerbaren Punkt betrachtet (zum Beispiel ein Videoschlüsselbild). Verwenden Sie dieses Ereignis, um eine Suchpunkttabelle zu konstruieren. Der byteCount
entspricht dem byteCount
beim ersten Byte der analysierbaren Meldung für diesen Suchpunkt und wird auf Null zurückgesetzt wie oben beschrieben. Für Suchläufe suchen Sie beim NetStream.Seek.Notify
-Ereignis die Bytes, die an einem ansteuerbaren Punkt starten, und rufen appendBytes(bytes)
auf. Wenn das bytes
-Argument ein ByteArray
ist, das aus Bytes besteht, die beim ansteuerbaren Punkt beginnen, wird das Video ab diesem Suchpunkt abgespielt.
Hinweis: Aufrufen von appendBytes()
aus diesem Rückruf heraus werden ignoriert.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Die onSeekPoint
-Eigenschaft ist eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, da sie auf Daten reagiert, die in die appendBytes()
-Methode kommen. Weitere Informationen finden Sie in der NetStream-Klassenbeschreibung und der NetStream.client
-Eigenschaft. Die addEventListener()
-Methode und die übrigen EventDispatcher-Methoden können nicht verwendet werden, um auf onSeekPoint
zu warten oder diese Eigenschaft als Ereignis zu verarbeiten. Um onSeekPoint
zu verwenden, definieren Sie eine Rückruffunktion und fügen sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Sie können jedoch eine Unterklasse von NetStream erstellen und Ihre Ereignisprozedur in der Unterklasse definieren. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Verwandte API-Elemente
onTextData | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn Flash Player Textdaten empfängt, die in einer aktuell abgespielten Mediendatei eingebettet sind. Die Textdaten sind im Format UTF-8 und können Informationen über Formatierungen basierend auf der 3GP-Timed-Textspezifikation enthalten.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
onTextData
ist eigentlich eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie auf ein Datenereignis reagiert, wenn entweder mit dem Media Flash Player gestreamt oder eine FLV-Datei wiedergegeben wird. Weitere Informationen finden Sie in der Beschreibung der NetStream-Klasse. Sie können die addEventListener()
-Methode bzw. andere EventDispatcher-Methoden nicht verwenden, um onTextData
zu überwachen oder als ein Ereignis zu verarbeiten. Definieren Sie eine Rückruffunktion und fügen Sie sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Erstellen Sie eine Unterklasse von NetStream und definieren Sie Ihre Ereignisprozedur in der Unterklasse. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Der verknüpfte Ereignis-Listener wird nach dem Aufruf der NetStream.play()
-Methode, aber noch vor dem Vorlauf des Abspielkopfes ausgelöst.
Das onTextData-Ereignisobjekt enthält eine Eigenschaft für jeden Textdatenteil.
Beispiel ( Verwendung dieses Beispiels )
Netstream.client
-Eigenschaft, um die Callback-Funktionen für onTextData
und onImageData
zu verarbeiten. Die onImageDataHandler()
-Funktion verwendet das onImageData-Ereignisobjekt imageData
, um das Bytearray zu speichern. Zusätzlich verwendet die onTextDataHandler()
-Funktion das onTextData-Ereignisobjekt textData
, um Teile von Textdaten zu speichern (jeder Datenteil ist eine Eigenschaft des textData
-Objekts).
Sie müssen den "yourURL"
-Speicherort im Code durch einen realen Speicherort für eine Mediendatei mit Text- oder Bildmetadaten ersetzen.
Sie können auch Bild- und Textdaten mithilfe einer benutzerdefinierten Klasse verarbeiten. Weitere Informationen und Beispiele finden Sie im Artikel Verarbeiten von Metadaten und Cue-Points in Flash Video.
package { import flash.display.*; import flash.net.*; import flash.media.*; import flash.system.*; import flash.events.*; public class OnTextDataExample extends Sprite { public function OnTextDataExample():void { var my_video:Video = new Video(); addChild(my_video); var customClient:Object = new Object(); customClient.onImageData = onImageDataHandler; customClient.onTextData = onTextDataHandler; var my_nc:NetConnection = new NetConnection(); my_nc.connect(null); var my_ns:NetStream = new NetStream(my_nc); my_ns.client = customClient; my_video.attachNetStream(my_ns); my_ns.play("yourURL"); } public function onImageDataHandler(imageData:Object):void { trace("imageData length: " + imageData.data.length); var imageloader:Loader = new Loader(); imageloader.loadBytes(imageData.data); // imageData.data is a ByteArray object. addChild(imageloader); } public function onTextDataHandler(textData:Object):void { trace("--- textData properties ----"); var key:String; for (key in textData) { trace(key + ": " + textData[key]); } } } }
Verwandte API-Elemente
onXMPData | Ereignis |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Erstellt einen Listener, der reagiert, wenn Flash Player Informationen empfängt, die spezifisch für die Adobe Extensible Metadata Platform (XMP) sind und die in einem Video eingebettet sind, das aktuell abgespielt wird. Weitere Informationen zu Videoformaten, die vom Flash Media Server unterstützt werden, finden Sie unter www.adobe.com/go/learn_fms_fileformats_de.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
onXMPData
ist eigentlich eine Eigenschaft des NetStream.client
-Objekts. Die Eigenschaft wird im Abschnitt „Ereignisse“ aufgeführt, weil sie auf ein Datenereignis reagiert, wenn entweder mit dem Media Flash Player gestreamt oder eine FLV-Datei wiedergegeben wird. Weitere Informationen finden Sie in der NetStream-Klassenbeschreibung und der NetStream.client
-Eigenschaft. Die addEventListener()
-Methode und die übrigen EventDispatcher-Methoden können nicht verwendet werden, um auf onMetaData
zu warten oder diese Eigenschaft als Ereignis zu verarbeiten. Definieren Sie eine Rückruffunktion und fügen Sie sie einem der folgenden Objekte hinzu:
- Das Objekt, auf das die
client
-Eigenschaft einer NetStream-Instanz verweist. - Eine Instanz einer NetStream-Unterklasse. Bei „NetStream“ handelt es sich um eine „versiegelte“ Klasse, d. h., dass einem NetStream-Objekt zur Laufzeit keine Eigenschaften oder Methoden hinzugefügt werden können. Sie können jedoch eine Unterklasse von NetStream erstellen und Ihre Ereignisprozedur in der Unterklasse definieren. Sie können die Unterklasse als dynamische Klasse definieren und die Ereignisprozedurfunktion einer Instanz der Unterklasse hinzufügen.
Der verknüpfte Ereignis-Listener wird nach dem Aufruf der NetStream.play()
-Methode, aber noch vor dem Vorlauf des Abspielkopfes ausgelöst.
Das Objekt, das an die onXMPData()
-Ereignisprozedurfunktion übergeben wurde, hat eine data
-Eigenschaft, die ein String ist. Der String wird von einer Top-Level UUID-Box generiert. (Die 128-Bit-UUID der Top-Level-Box ist BE7ACFCB-97A9-42E8-9C71-999491E3AFAC
.) Diese Top-Level UUID-Box enthält exakt ein XML-Dokument, das als nullterminierter UTF8-String repräsentiert ist.
Verwandte API-Elemente
status | Ereignis |
flash.events.StatusEvent
Eigenschaft StatusEvent.type =
flash.events.StatusEvent.STATUS
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 1.0, Flash Lite 4 |
Wird ausgelöst, wenn die Anwendung versucht, mit DRM (Digital Rights Management) verschlüsselten Inhalt abzuspielen, indem die NetStream.play()
-Methode aufgerufen wird. Der Wert der Statuscode-Eigenschaft ist "DRM.encryptedFLV"
.
Hinweis: Dieses Ereignis wird für H.264-Video unter AIR 3.0 for iOS nicht unterstützt.
Definiert den Wert der Eigenschafttype
eines status
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
code | Eine Beschreibung des Objektstatus. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
Ebene | Die Kategorie der Meldung, z. B. "status" , "warning" oder "error" . |
target | Das Objekt, dessen Status gemeldet wird. |
Verwandte API-Elemente
CONNECT_TO_FMS | Konstante |
public static const CONNECT_TO_FMS:String = "connectToFMS"
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Ein statisches Objekt, das als Parameter für den Konstruktor einer NetStream-Instanz verwendet wird. Der Standardwert des zweiten Parameters im NetStream-Konstruktor: er wird nicht von der Anwendung für die progressive Medienwiedergabe verwendet. Wenn dieser Parameter verwendet wird, stellt der Konstruktor eine Verbindung zur Flash Media Server-Instanz her.
DIRECT_CONNECTIONS | Konstante |
public static const DIRECT_CONNECTIONS:String = "directConnections"
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Stellt eine Peer-to-Peer-Herausgeberverbindung her. Übergeben Sie diesen String für den zweiten (optionalen) Parameter an den Konstruktor für eine NetStream-Instanz. Mit diesem String kann eine Anwendung eine NetStream-Verbindung zum Veröffentlichen von Audio und Video für Clients erstellen.
In diesem Fall wird der Code zur Erstellung des Video- und NetStream-Objekts und zum Aufrufen der Methoden Video.attachNetStream()
und NetStream.play()
in eine Prozedurfunktion eingefügt. Die Prozedur wird nur aufgerufen, wenn die Verbindung mit dem NetConnection-Objekt erfolgreich hergestellt werden kann, d. h. wenn das Ereignis netStatus
ein info
-Objekt mit einer code
-Eigenschaft zurückgibt, die Erfolg angibt. Es wird empfohlen, die erfolgreiche Verbindungsherstellung abzuwarten, bevor Sie NetStream.play()
aufrufen.
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
die Breite und Höhe einer Videoinstanz video
eingerichtet:
//Place the following in the connectStream() function //in the NetConnectionExample code var metaSniffer:Object=new Object(); stream.client=metaSniffer; //stream is the NetStream instance metaSniffer.onMetaData=getMeta; // Add the following function within the NetConnectionExample class private function getMeta (mdata:Object):void { video.width=mdata.width/2; video.height=mdata.height/2; }
Tue Jun 12 2018, 10:04 AM Z