ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: AIR 30.0 i wcześniejsze, Flash Player 30.0 i wcześniejsze, Flash Lite 4
Flex 4.6 i wcześniejsze, Flash Pro CS6 i wcześniejsze
Ukryj filtry
flash.net 

NetStream  - AS3

Pakietyx

Najwyższy poziom
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

Elementy językowe

Stałe globalne
Funkcje globalne
Operatory
Instrukcje, słowa kluczowe i dyrektywy
Typy specjalne

Dodatki

Nowości
Błędy kompilatora
Ostrzeżenia kompilatora
Błędy czasu wykonywania
Migracja kodu ActionScript 3
Obsługiwane zestawy znaków
Tylko MXML
Elementy XML dotyczące ruchu
Znaczniki tekstu z synchronizacją czasową
Przestarzały indeks
Stałe implementacji dostępności
Instrukcje dotyczące przykładów
Informacje prawne
Pakietflash.net
Klasapublic class NetStream
DziedziczenieNetStream Inheritance EventDispatcher Inheritance Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Klasa NetStream otwiera jednokierunkowy kanał transmisji strumieniowej przez połączenie NetConnection.

Klasa NetStream może być stosowana w następujących celach:

  • Wywołanie metody NetStream.play() służy do odtworzenia pliku multimedialnego z dysku lokalnego, serwera sieci Web lub serwera Flash Media Server.
  • Wywołanie metody NetStream.publish() służy do publikowania wideo, dźwięku oraz strumienia danych na serwerze Flash Media Server.
  • Wywołanie metody NetStream.send() służy do wysyłania komunikatów danych do wszystkich klientów subskrybujących.
  • Wywołanie metody NetStream.send() służy do dodawania metadanych do strumienia „na żywo”.
  • Wywołanie metody NetStream.appendBytes umożliwia przekazanie danych w obiekcie ByteArray do obiektu NetStream.

Uwaga: Nie można odtwarzać i publikować strumienia za pomocą tego samego obiektu NetStream.

Środowisko Adobe AIR oraz program Flash Player 9.0.115.0 i nowsze wersje obsługują pliki pomocnicze uzyskane na podstawie standardowego formatu „kontenerowego” MPEG-4. Są to pliki F4V, MP4, M4A, MOV, MP4V, 3GP i 3G2, o ile zawierają wideo zakodowane w formacie H.264 i/lub dźwięk zakodowany w formacie HE-AAC v2. Standard H.264 zapewnia wyższą jakość wideo przy mniejszej szybkości transmisji w porównaniu z takim samym profilem kodowania w standardach Sorenson i On2. AAC jest standardowym formatem dźwięku zdefiniowanym w ramach standardu wideo MPEG-4. W formacie HE-AAC v2, stanowiącym rozszerzenie formatu AAC, stosowane są techniki replikacji pasma widmowego (SBR, ang. spectral band replication) i stereofonii parametrycznej (PS, ang. parametric stereo) w celu zwiększenia efektywności kodowania przy niskiej liczbie bitów na sekundę.

Informacje na temat obsługiwanych kodeków i formatów plików można znaleźć w następującej dokumentacji:

Odbieranie danych ze strumienia serwera Flash Media Server, stopniowo pobieranego pliku F4V lub stopniowo pobieranego pliku FLV

Serwer Flash Media Server, pliki F4V oraz pliki FLV mogą być źródłem obiektów zdarzeń zawierających dane w konkretnych punktach przesyłanego lub odtwarzanego strumienia danych. Podczas odtwarzania dane mogą być obsługiwane ze strumienia lub pliku FLV na dwa sposoby:

  • Skojarz właściwość client z modułem obsługi zdarzeń, aby otrzymać obiekt danych. Użyj właściwości NetStream.client, aby przypisać obiekt do wywoływania określonych funkcji obsługi danych. Obiekt przypisany do właściwości NetStream.client może wykrywać następujące punkty danych: onCuePoint(), onImageData(), onMetaData(), onPlayStatus(), onSeekPoint(), onTextData() i onXMPData(). Napisz procedury wewnątrz tych funkcji, aby obsłużyć podczas odtwarzania obiekt danych zwrócony ze strumienia. Więcej informacji można znaleźć w opisie właściwości NetStream.client.
  • Skojarz właściwość client z podklasą NetStream, a następnie napisz moduł obsługi zdarzeń, aby otrzymać obiekt danych. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Można jednak utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie podprogramu obsługi zdarzeń do instancji podklasy.

Przed użyciem replikacji obiektów, routingu ukierunkowanego lub interfejsów API publikowania należy zaczekać, aż zostanie odebrane zdarzenie NetGroup.Neighbor.Connect.

Uwaga: aby wysłać dane za pomocą pliku audio, np. pliku MP3, należy użyć klasy Sound w celu skojarzenia pliku audio z obiektem Sound. Następnie, należy skorzystać z właściwości Sound.id3 w celu wczytania metadanych z pliku dźwiękowego.

Obsługa plików wideo zakodowanych za pomocą kodeka H.264 w środowisku AIR dla systemu iOS

W przypadku plików wideo w formacie H.264 środowisko AIR 3.0 (i nowsze wersje) dla systemu iOS obsługuje podzbiór pełnego interfejsu API NetStream. Poniższa tabela zawiera listę elementów składowych klasy NetStream przeznaczonych do odtwarzania, które nie są obsługiwane w środowisku AIR dla systemu iOS:

Nieobsługiwane właściwościNieobsługiwane metodyNieobsługiwane zdarzenia
bufferTimeappendBytes()onCuePoint (działa tylko w przypadku plików FLV)
bufferLengthappendBytesAction()onImageData
backBufferTimestep()onSeekPoint
backBufferLengthonTextData
bufferTimeMaxonXMPData
bytesLoadeddrmError
currentFPSdrmStatus
inBufferSeekonDRMContentData
infodrmAuthenticate
liveDelayKod zdarzenia stanu DRM.encryptedFLV
maxPauseBufferTime
soundTransform
Wszystkie właściwości opisujące połączenia RTMFP

Więcej informacji na temat korzystania ze środowiska AIR for iOS można uzyskać, zapoznając się z opisem metody NetStream.play().

Wyświetl przykłady

Powiązane elementy interfejsu API



Właściwości publiczne
 WłaściwośćZdefiniowane przez
  audioReliable : Boolean
W przypadku połączeń RTMFP określa, czy dźwięk jest przesyłany w pełni niezawodnie.
NetStream
  audioSampleAccess : Boolean
W przypadku połączeń RTMFP określa, czy subskrybenci P2P tego strumienia NetStream mogą przechwytywać strumień audio.
NetStream
  backBufferLength : Number
[tylko do odczytu] Liczba sekund danych wyświetlonych wcześniej, które są zapisane w buforze na potrzeby cofania i odtwarzania.
NetStream
  backBufferTime : Number
Określa (w sekundach) ilość danych wyświetlonych wcześniej, jaką program Flash Player próbuje buforować na potrzeby przewijania wstecz i odtwarzania.
NetStream
  bufferLength : Number
[tylko do odczytu] Czas odtwarzania aktualnie buforowanych danych (w sekundach).
NetStream
  bufferTime : Number
Określa czas buforowania komunikatów przed rozpoczęciem wyświetlania strumienia.
NetStream
  bufferTimeMax : Number
Określa (w sekundach) maksymalną długość buforu używanego do strumieniowego przesyłania treści w czasie rzeczywistym.
NetStream
  bytesLoaded : uint
[tylko do odczytu] Liczba bajtów załadowanych do aplikacji.
NetStream
  bytesTotal : uint
[tylko do odczytu] Całkowita liczba bajtów pliku ładowanego do aplikacji.
NetStream
  checkPolicyFile : Boolean
Określa, czy przed rozpoczęciem ładowania pliku wideo aplikacja powinna podjąć próbę pobrania z serwera międzydomenowego pliku reguł.
NetStream
  client : Object
Określa obiekt na którym wywoływane są metody wywołania zwrotnego w celu obsługi danych strumieniowych lub pliku F4V/FLV.
NetStream
 Inheritedconstructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu.
Object
  currentFPS : Number
[tylko do odczytu] Liczba wyświetlanych klatek na sekundę.
NetStream
  dataReliable : Boolean
W przypadku połączeń RTMFP określa, czy wywołania NetStream.send() są realizowane w pełni niezawodnie.
NetStream
  farID : String
[tylko do odczytu] W przypadku połączeń RTMFP jest to identyfikator odległego węzła połączonego z instancją NetStream.
NetStream
  farNonce : String
[tylko do odczytu] W przypadku połączeń RTMFP i RTMPE jest to wartość wybrana przez drugi koniec strumienia, unikatowa dla tego połączenia.
NetStream
  inBufferSeek : Boolean
Określa, czy wyświetlane dane są buforowane na potrzeby inteligentnego wyszukiwania (TRUE), czy nie (FALSE).
NetStream
  info : NetStreamInfo
[tylko do odczytu] Zwraca obiekt NetStreamInfo, którego właściwości zawierają statystyki o jakości usługi.
NetStream
  liveDelay : Number
[tylko do odczytu] Ilość danych (liczba sekund) strumienia subskrypcji w trybie "na żywo" (bez buforowania).
NetStream
  maxPauseBufferTime : Number
Określa czas buforowania komunikatów w trybie wstrzymania, w sekundach.
NetStream
  multicastAvailabilitySendToAll : Boolean
W przypadku połączeń RTMFP określa, czy komunikaty multiemisji P2P o dostępności fragmentów są wysyłane do wszystkich węzłów równorzędnych, czy tylko do jednego węzła.
NetStream
  multicastAvailabilityUpdatePeriod : Number
W przypadku połączeń RTMFP określa okres (w sekundach) między operacjami wysyłania do węzłów równorzędnych komunikatów informujących o dostępności fragmentów multimediów w multiemisji P2P na lokalnym węźle.
NetStream
  multicastFetchPeriod : Number
W przypadku połączeń RTMFP określa czas w sekundach, jaki upływa między uzyskaniem przez węzeł lokalny informacji o dostępności fragmentu multimediów w multiemisji P2P a próbą pobrania tego fragmentu z węzła równorzędnego.
NetStream
  multicastInfo : NetStreamMulticastInfo
[tylko do odczytu] W przypadku połączeń RTMFP zwraca obiekt NetStreamMulticastInfo, którego właściwości zawierają dane statystyczne o jakości usług.
NetStream
  multicastPushNeighborLimit : Number
W przypadku połączeń RTMFP określa maksymalną liczbę węzłów równorzędnych, do których mają być proaktywnie przekazywane multimedia przesyłane w multiemisji.
NetStream
  multicastRelayMarginDuration : Number
W przypadku połączeń RTMFP określa czas (w sekundach), przez jaki dane multiemisji P2P pozostają dostępne do wysłania do węzłów równorzędnych, które zażądają ich już po upływie okna czasowego.
NetStream
  multicastWindowDuration : Number
W przypadku połączeń RTMFP określa w sekundach długość okna czasowego składania fragmentów multiemisji P2P.
NetStream
  nearNonce : String
[tylko do odczytu] W przypadku połączeń RTMFP i RTMPE jest to wartość wybrana przez ten koniec strumienia, unikatowa dla tego połączenia.
NetStream
  objectEncoding : uint
[tylko do odczytu] Kodowanie obiektów (wersja AMF) dotyczące tego obiektu NetStream.
NetStream
  peerStreams : Array
[tylko do odczytu] Obiekt przechowujący wszystkie subskrybujące instancje NetStream, które nasłuchują tej publikującej instancji NetStream.
NetStream
  soundTransform : flash.media:SoundTransform
Zapewnia kontrolę nad dźwiękiem reprezentowanym przez ten obiekt NetStream.
NetStream
  time : Number
[tylko do odczytu] Położenie głowicy odtwarzania (w sekundach).
NetStream
  useHardwareDecoder : Boolean
Określa, czy w strumieniu ma być używane dekodowanie przyspieszane sprzętowo.
NetStream
  useJitterBuffer : Boolean
Minimalizuje opóźnienia w przypadku przesyłania strumieniowego na żywo bez bufora (bufferTime = 0).
NetStream
  videoReliable : Boolean
W przypadku połączeń RTMFP określa, czy wideo jest przesyłane w pełni niezawodnie.
NetStream
  videoSampleAccess : Boolean
W przypadku połączeń RTMFP określa, czy subskrybenci P2P tego strumienia NetStream mogą przechwytywać strumień wideo.
NetStream
  videoStreamSettings : VideoStreamSettings
Określa właściwości kompresji strumienia.
NetStream
Metody publiczne
 MetodaZdefiniowane przez
  
NetStream(connection:NetConnection, peerID:String = "connectToFMS")
Tworzy strumień, którego można używać w celu odtwarzania plików multimedialnych i wysyłania danych za pomocą obiektu NetConnection.
NetStream
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu.
EventDispatcher
  
Przekazuje obiekt ByteArray do obiektu NetStream w celu odtworzenia.
NetStream
  
appendBytesAction(netStreamAppendBytesAction:String):void
Wskazuje przerwę na osi czasu, opróżnia kolejkę FIFO i informuje analizator bajtów, aby oczekiwał nagłówka pliku lub początku znacznika FLV.
NetStream
  
Przyłącza strumień do nowego obiektu NetConnection.
NetStream
  
Dołącza do obiektu NetStream strumień audio pochodzący z obiektu Microphone przekazanego jako źródło.
NetStream
  
attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
Rozpoczyna przechwytywanie danych wideo z kamery lub zatrzymuje przechwytywanie, jeśli parametr theCamera ma wartość null.
NetStream
  
Zatrzymuje odtwarzanie wszystkich danych strumienia, ustawia właściwość czasu na 0 i czyni strumień dostępnym dla innych celów.
NetStream
 Inherited
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń.
EventDispatcher
  
Zwalnia wszystkie źródła kontrolowane przez obiekt NetStream.
NetStream
 Inherited
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń.
EventDispatcher
 Inherited
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość.
Object
 Inherited
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr.
Object
  
Wywoływana, gdy strumień publikowania między równorzędnymi komputerami odpowiada strumieniowi subskrypcji między równorzędnymi komputerami.
NetStream
  
Wstrzymuje odtwarzanie strumienia wideo.
NetStream
  
play(... arguments):void
Odtwarza plik multimedialny z katalogu lokalnego lub serwera sieci Web; odtwarza plik multimedialny lub strumień „na żywo” z serwera Flash Media Server.
NetStream
  
Umożliwia płynne przełączanie między plikami z różnymi szybkościami transmisji i wznowienie działania obiektu NetStream po przerwaniu i ponownym nawiązaniu połączenia.
NetStream
  
Wyodrębnia metadane DRM z przechowywanego lokalnie pliku multimedialnego.
NetStream
 Inherited
Wskazuje, czy określona właściwość istnieje i jest przeliczalna.
Object
  
publish(name:String = null, type:String = null):void
Wysyła strumieniowo dane audio, wideo i komunikaty danych z klienta na serwer Flash Media Server, opcjonalnie rejestrując strumień w trakcie transmisji.
NetStream
  
Określa, czy są odtwarzane przychodzące dane audio.
NetStream
  
Określa, czy w strumieniu jest odtwarzane przychodzące wideo.
NetStream
  
Określa szybkość odtwarzania dla danych wejściowych wideo.
NetStream
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Usuwa detektor z obiektu EventDispatcher.
EventDispatcher
  
[statyczny] W aplikacjach AIR powoduje to usunięcie wszystkich buforowanych lokalnie danych kuponów zarządzania prawami cyfrowymi (DRM).
NetStream
  
Wznawia odtwarzanie wstrzymanego strumienia wideo.
NetStream
  
seek(offset:Number):void
Wyszukuje klatkę kluczową (w branży filmowej nazywanej również) najbliższą dla określonego położenia.
NetStream
  
send(handlerName:String, ... arguments):void
Wysyła do wszystkich subskrybentów komunikat za pomocą opublikowanego strumienia.
NetStream
  
Ustawia poświadczenia uwierzytelniania DRM niezbędne do wyświetlania skojarzonej zaszyfrowanej treści.
NetStream
 Inherited
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
  
step(frames:int):void
Powoduje przejście naprzód lub wstecz o określoną liczbę klatek względem obecnie wyświetlanej klatki.
NetStream
  
Wstrzymuje lub wznawia odtwarzanie strumienia.
NetStream
 Inherited
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych.
Object
 Inherited
Zwraca ciąg reprezentujący określony obiekt.
Object
 Inherited
Zwraca pierwotną wartość dla określonego obiektu.
Object
 Inherited
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych.
EventDispatcher
Zdarzenia
 Zdarzenie Podsumowanie Zdefiniowane przez
 Inherited[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny.EventDispatcher
  Wywoływana w przypadku asynchronicznego zgłoszenia wyjątku — pochodzącego z macierzystego kodu asynchronicznego.NetStream
 Inherited[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny.EventDispatcher
  Wywoływane, gdy obiekt NetStream próbuje odtwarzać treść zaszyfrowaną przy użyciu mechanizmu DRM, która wymaga poświadczeń użytkownika do uwierzytelnienia przed rozpoczęciem odtwarzania.NetStream
  Wywoływane, gdy obiekt NetStream próbujący odtwarzać plik zaszyfrowany za pomocą mechanizmu DRM napotka błąd związany z mechanizmem DRM.NetStream
  Wywoływane, gdy rozpoczyna się odtwarzanie zawartości zabezpieczonej przy użyciu mechanizmu DRM (tj. gdy użytkownik zostanie uwierzytelniony i uzyska uprawnienia do odtwarzania zawartości).NetStream
  Wywoływana, gdy wystąpi błąd wejścia lub wyjścia uniemożliwiający operację sieciową.NetStream
  Wywoływane w przypadku przetworzenia komunikatów pewnego typu podczas odtwarzania zawartości wideo.NetStream
  Wywoływana, gdy obiekt NetStream zgłasza swój stan lub warunek błędu.NetStream
  Tworzy detektor, którego zadaniem jest generowanie odpowiedzi w momencie osiągnięcia punktu sygnalizacji w czasie odtwarzania pliku wideo.NetStream
  Definiuje detektor reagujący na wyodrębnienie przez środowisko AIR metadanych zawartości DRM osadzonych w pliku multimedialnym.NetStream
  Tworzy detektor w celu odpowiedzi na odebranie przez program Flash Player danych obrazu jako tablicy bajtów osadzonych w odtwarzanym pliku multimedialnym.NetStream
  Tworzy detektor w celu odpowiedzi na odebranie przez program Flash Player informacji opisowych osadzonych w odtwarzanym w danym momencie pliku wideo.NetStream
  Tworzy detektor, którego zadaniem jest generowanie odpowiedzi na zakończenie odtwarzania strumienia przez obiekt NetStream.NetStream
  Wywoływana synchronicznie z metody appendBytes(), gdy analizator dołączonych bajtów napotka punkt uznany za możliwy do wyszukania (na przykład klatkę kluczową wideo).NetStream
  Tworzy detektor w celu odpowiedzi na odebranie przez program Flash Player danych tekstowych osadzonych w odtwarzanym pliku multimedialnym.NetStream
  Tworzy detektor w celu generowania odpowiedzi w momencie odebrania przez program Flash Player informacji charakterystycznych dla programu Adobe Extensible Metadata Platform (XMP) osadzonych w odtwarzanym pliku wideo.NetStream
  Wywoływane, gdy aplikacja próbuje odtworzyć treść zaszyfrowaną przy użyciu mechanizmu DRM poprzez wywołanie metody NetStream.play().NetStream
Stałe publiczne
 StałaZdefiniowane przez
  CONNECT_TO_FMS : String = "connectToFMS"
[statyczny] Statyczny obiekt używany jako parametr w konstruktorze instancji NetStream.
NetStream
  DIRECT_CONNECTIONS : String = "directConnections"
[statyczny] Tworzy połączenie pomiędzy równorzędnymi wydawcami.
NetStream
Szczegół właściwości

audioReliable

właściwość
audioReliable:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa, czy dźwięk jest przesyłany w pełni niezawodnie. Wartość TRUE oznacza, że dźwięk jest przez dany strumień NetStream przesyłany w pełni niezawodnie. Wartość FALSE oznacza, że przesyłanie dźwięku nie jest w pełni niezawodne, a dźwięk jest w razie potrzeby ponownie przesyłany tylko przez ograniczony czas, po czym dane dźwiękowe są usuwane. Ustawienie FALSE pozwala na ograniczenie opóźnień kosztem jakości dźwięku.

Próba ustawienia tej właściwości na FALSE dla protokołu sieciowego, który nie obsługuje częściowej niezawodności, zostanie zignorowana, a właściwość przyjmie wartość TRUE.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get audioReliable():Boolean
    public function set audioReliable(value:Boolean):void

Powiązane elementy interfejsu API

audioSampleAccess

właściwość 
audioSampleAccess:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa, czy subskrybenci P2P tego strumienia NetStream mogą przechwytywać strumień audio. Wartość FALSE powoduje, że próba przechwycenia strumienia audio przez subskrybenta wywoła błąd braku uprawnień.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get audioSampleAccess():Boolean
    public function set audioSampleAccess(value:Boolean):void

Powiązane elementy interfejsu API

backBufferLength

właściwość 
backBufferLength:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Liczba sekund danych wyświetlonych wcześniej, które są zapisane w pamięci podręcznej na potrzeby przewijania wstecz i odtwarzania.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Ta właściwość jest dostępna tylko w przypadku strumieniowego przesyłania danych z serwera Flash Media Server 3.5.3 lub nowszej wersji; więcej informacji o serwerze Flash Media Server znajduje się w opisie klasy.

Aby określić ilość wcześniej wyświetlanych danych buforowanych w pamięci podręcznej, należy skorzystać z właściwości Netstream.backBufferTime.

Aby wyłączyć buforowanie danych w pamięci podręcznej, należy przypisać właściwości Netstream.inBufferSeek wartość FALSE.



Implementacja
    public function get backBufferLength():Number

Powiązane elementy interfejsu API

backBufferTime

właściwość 
backBufferTime:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Określa (w sekundach) ilość danych wyświetlonych wcześniej, jaką program Flash Player próbuje buforować na potrzeby przewijania wstecz i odtwarzania. Wartość domyślna to 30 sekund dla aplikacji na urządzenia stacjonarne i 3 sekundy dla aplikacji na urządzenia mobilne.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Ta właściwość jest dostępna tylko w przypadku strumieniowego przesyłania danych z serwera Flash Media Server 3.5.3 lub nowszej wersji; więcej informacji o serwerze Flash Media Server znajduje się w opisie klasy.

Użycie tej właściwości poprawia wydajność przewijania wstecz, ponieważ dane, które były już wyświetlane, nie są ponownie pobierane z serwera. Strumień jest odtwarzany ponownie z buforu. W trakcie odtwarzania dane są nadal przesyłane strumieniowo z serwera aż do zapełnienia buforu.

Próba przewinięcia wstecz dalej niż sięgają dane w buforze spowoduje opróżnienie buforu. Rozpoczyna się wówczas strumieniowe przesyłanie danych z serwera od żądanej pozycji.

Aby używać tej właściwości, należy właściwości Netstream.inBufferSeek nadać wartość TRUE.



Implementacja
    public function get backBufferTime():Number
    public function set backBufferTime(value:Number):void

Powiązane elementy interfejsu API

bufferLength

właściwość 
bufferLength:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Czas odtwarzania aktualnie buforowanych danych (w sekundach). Tej właściwości można użyć z właściwością bufferTime, aby oszacować ile pozostało czasu do całkowitego wypełnienia bufor — na przykład, aby wyświetlić informację zwrotną dla użytkownika, który oczekuje na załadowanie danych do bufora.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get bufferLength():Number

Powiązane elementy interfejsu API

bufferTime

właściwość 
bufferTime:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa czas buforowania komunikatów przed rozpoczęciem wyświetlania strumienia.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Wartością domyślną jest 0,1 (1/10 sekundy). Aby określić liczbę sekund buforowanych w danym momencie, należy użyć właściwości bufferLength.

Aby odtworzyć listę odtwarzania po stronie serwera, należy ustawić parametr bufferTime na co najmniej 1 sekundę. W razie napotkania problemów z odtwarzaniem należy zwiększyć wartość bufferTime.

Nagrana treść Aby uniknąć zniekształceń podczas strumieniowego przesyłania wstępnie nagranej treści (a nie odtwarzanej „na żywo”), nie należy ustawiać właściwości NetStream.bufferTime na wartość 0. Domyślnie aplikacja używa wejściowego bufora danych dla treści wstępnie nagranej, który kolejkuje dane multimedialne i właściwie je odtwarza. Dla wstępnie nagranej treści należy używać wartości domyślnych lub zwiększać wartość bufora czasowego.

Treść na żywo W przypadku strumieniowego przesyłania treści odtwarzanej na żywo, należy ustawić właściwość bufferTime na wartość 0.

Rozpoczynając od wersji Flash Player 9.0.115.0, program Flash Player nie czyści więcej bufora, gdy wywoływana jest metoda NetStream.pause(). W wersjach starszych niż 9.0.115.0 program Flash Player oczekiwał na wypełnienie bufora przed wznowieniem odtwarzania, co często powodowało opóźnienie.

Dla pojedynczego wstrzymania właściwość NetStream.bufferLength uwzględnia ograniczenie 60 sekund lub dwukrotną wartość właściwości NetStream.bufferTime — w zależności do tego, która wartość jest wyższa. Na przykład jeśli właściwość bufferTime ma wartość 20 sekund, program Flash Player buforuje dane aż do momentu, w którym właściwość NetStream.bufferLength jest wyższą z dwóch wartości: 20*2 (40) albo 60. W tym przypadku dane będą buforowane aż do osiągnięcia przez właściwość bufferLength wartości 60. Jeśli właściwość bufferTime ma wartość 40 sekund, program Flash Player buforuje dane aż do momentu, w którym właściwość bufferLength jest wyższą z dwóch wartości: 40*2 (80) albo 60. W tym przypadku dane będą buforowane, aż do osiągnięcia przez właściwość bufferLength wartości 80.

Właściwość bufferLength posiada także ograniczenie bezwzględne. Jeśli wywołanie metody pause() spowoduje wzrost wartości właściwości bufferLength do ponad 600 sekund lub dwukrotności wartości właściwości bufferTime program Flash Player, w zależności od tego, która wartość jest wyższa, opróżnia bufor i ponownie ustawia wartość 0 dla właściwości bufferLength. Na przykład jeśli właściwość bufferTime ma wartość 120 sekund, program Flash Player opróżnia bufor, jeśli właściwość bufferLength osiąga wartość 600 sekund; jeśli właściwość bufferTime ma wartość 360 sekund, program Flash Player opróżnia bufor, jeśli właściwość bufferLength osiąga wartość 720 sekund.

Wskazówka: W kodzie można użyć metody NetStream.pause(), aby buforować dane, gdy obserwatorzy oglądają na przykład reklamę, a następnie wznowić w momencie rozpoczęcia głównego wideo.

Aby uzyskać więcej informacji na temat nowego zachowania metody pause, należy zapoznać się z informacjami na stronie http://www.adobe.com/go/learn_fms_smartpause_pl.

Flash Media Server. Działanie bufora zależy od tego, czy czas buforowania został ustawiony na strumień publikowania, czy strumień subskrypcji. Właściwość bufferTime dla strumienia publikowania określa czas, przez jaki bufor danych wyjściowych będzie powiększany, zanim aplikacja zacznie gubić klatki. W przypadku szybkich połączeń czas buforowania nie musi być brany pod uwagę; dane będą wysyłane prawie tak szybko, jak aplikacja będzie je buforowała. W przypadku wolnych połączeń może pojawić się znacząca różnica pomiędzy szybkością buforowania danych przez aplikację a szybkością, z jaką są one wysyłane do klienta.

Właściwość bufferTime dla strumienia subskrybującego określa czas, przez jaki buforowane są dane wejściowe, zanim rozpoczęte zostanie wyświetlanie strumienia.

Jeśli w czasie odtwarzania nagranego strumienia właściwość bufferTime ma wartość 0, program Flash ustawi ją na niewielką wartość (w przybliżeniu 10 milisekund). Jeśli w późniejszym czasie odtwarzane są strumienie „na żywo” (np. z listy odtwarzania), czas buforowania nie ulegnie zmianie. Oznacza to, że właściwość bufferTime pozostanie wartością niezerową dla strumienia.



Implementacja
    public function get bufferTime():Number
    public function set bufferTime(value:Number):void

Powiązane elementy interfejsu API

bufferTimeMax

właściwość 
bufferTimeMax:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Określa (w sekundach) maksymalną długość buforu używanego do strumieniowego przesyłania treści w czasie rzeczywistym. Wartością domyślną jest 0. Długość buforu może się z czasem zwiększać z powodu problemów z siecią i urządzeniami (np. rozsynchronizowywania się zegarów między nadawcą a odbiorcą). Ta właściwość umożliwia ograniczenie długości buforu w zastosowaniach wymagających przesyłania w czasie rzeczywistym, takich jak konferencje i telewizja przemysłowa.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Gdy bufferTimeMax > 0 i bufferLength >= bufferTimeMax, dźwięk jest odtwarzany szybciej, dopóki wartość bufferLength nie zrówna się z wartością bufferTime. Jeśli przesyłany jest strumień zawierający tylko dane wideo, odtwarzanie wideo odbywa się w przyspieszonym tempie do czasu, aż bufferLength zrówna się z wartością bufferTime.

W zależności od opóźnienia w odtwarzaniu (różnicy między bufferLength a bufferTime) program Flash Player reguluje przyspieszenie w zakresie od 1,5% do 6,25%. Jeśli strumień zawiera dźwięk, szybsze odtwarzanie realizowane jest poprzez redukcję liczby próbek w dziedzinie częstotliwości, co minimalizuje słyszalne zniekształcenia dźwięku.

Ustawienie wartości właściwości bufferTimeMax umożliwia „nadrobienie” opóźnienia w odtwarzaniu buforowanego strumienia w następujących sytuacjach:

  • Podczas strumieniowego przesyłania multimediów „na żywo” z serwera Flash Media Server.
  • Podczas strumieniowego przesyłania multimediów „na żywo” w trybie generowania danych (NetStream.appendBytes()).



Implementacja
    public function get bufferTimeMax():Number
    public function set bufferTimeMax(value:Number):void

Powiązane elementy interfejsu API

bytesLoaded

właściwość 
bytesLoaded:uint  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Liczba bajtów załadowanych do aplikacji. Tej właściwości można użyć z właściwością bytesTotal, aby oszacować ile pozostało czasu do całkowitego wypełnienia bufor — na przykład, aby wyświetlić informację zwrotną dla użytkownika, który oczekuje na załadowanie danych do bufora.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get bytesLoaded():uint

Powiązane elementy interfejsu API

bytesTotal

właściwość 
bytesTotal:uint  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Całkowita liczba bajtów pliku wcztywanego do aplikacji.



Implementacja
    public function get bytesTotal():uint

Powiązane elementy interfejsu API

checkPolicyFile

właściwość 
checkPolicyFile:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9

Określa, czy przed rozpoczęciem ładowania pliku wideo aplikacja powinna podjąć próbę pobrania z serwera międzydomenowego pliku reguł. Właściwości tej należy używać przy stopniowym pobieraniu wideo, a także do ładowania plików znajdujących się poza własną domeną wywołującego pliku SWF. Ta właściwość jest ignorowana, jeśli używany jest protokół RTMP.

Należy ustawić tę właściwość true, aby możliwe było wywołanie BitmapData.draw() względem pliku wideo załadowanego z domeny poza wywołującym plikiem SWF. Metoda BitmapData.draw() umożliwia dostęp do wideo na poziomie pikseli. Jeśli w czasie ładowania metoda BitmapData.draw() zostanie wywołana bez właściwości checkPolicyFile ustawionej na wartość true, zgłoszony może zostać wyjątek SecurityError, ponieważ nie został pobrany wymagany plik reguł.

Nie należy ustawiać tej właściwości na true, jeśli nie jest potrzebny dostęp do ładowanego wideo na poziomie pikseli. Sprawdzanie obecności pliku reguł dodatkowo obciąża sieć i może opóźnić rozpoczęcie pobierania.

Wywołanie metody NetStream.play(), gdy właściwość checkPolicyFile jest ustawiona na wartość true, zmusza program Flash Player lub środowisko AIR do pobrania właściwego międzydomenowego pliku reguł lub określenia, że taki plik nie istnieje, zanim rozpocznie się pobieranie. Aby zweryfikować istnienie pliku reguł, program Flash Player lub środowisko AIR wykonuje następujące operacje w kolejności:

  1. Aplikacja uwzględnia pliki reguł, które zostały już pobrane.
  2. Aplikacja usiłuje pobrać dowolne oczekujące pliki reguł określone w wywołaniach metody Security.loadPolicyFile().
  3. Aplikacja usiłuje pobrać plik reguł z domyślnej lokalizacji określonej w adresie URL, który został przekazany do metody NetStream.play(), czyli plik/crossdomain.xml na tym samym serwerze, co wskazany adres URL.

We wszystkich przypadkach program Flash Player lub środowisko Adobe AIR wymaga właściwego pliku reguł na serwerze pliku wideo, który zapewnia dostęp do obiektu określonego w adresie URL przekazanym do metody play() i opartym na lokalizacji pliku reguł oraz pozwala domenie wywołującego pliku kodu na dostęp do wideo za pomocą jednego lub wielu znaczników <allow-access-from>.

Ustawiając właściwość checkPolicyFile na wartość true, aplikacja czeka, aż plik reguł zostanie zweryfikowany, zanim pobrane zostanie wideo. Aby wykonać na danych wideo operacje z poziomu piksela, np. wywołać metodę BitmapData.draw(), należy zaczekać, aż z obiektu NetStream odebrane zostaną zdarzenia onMetaData lub NetStatus.

Jeśli właściwość checkPolicyFile ma wartość true i nie został odnaleziony właściwy plik reguł, żaden błąd nie zostanie zgłoszony do momentu wykonania operacji, która wymaga pliku reguł, aplikacja Player zgłosi wyjątek SecurityError.

Korzystając z właściwości checkPolicyFile należy zachować ostrożność, jeśli plik pobierany jest za pomocą adresu URL, który używa serwerowych przekierowań HTTP. Aplikacja usiłuje pobrać pliki reguł, które odpowiadają początkowemu adresowi URL, jaki został określony w metodzie NetStream.play(). Jeśli z powodu przekierowań HTTP końcowy plik pochodzi z innego adresu URL, początkowo pobrane pliki reguł mogą nie odpowiadać adresowi URL pliku końcowego, który jest adresem URL istotnym dla decyzji dotyczących zabezpieczeń.

Więcej informacji na temat plików reguł zawiera sekcja „Kontrola witryn sieci Web (pliki reguł)” w publikacji ActionScript 3.0 — Podręcznik dla programistów oraz odpowiedni temat witryny Flash Player Developer Center: Security.



Implementacja
    public function get checkPolicyFile():Boolean
    public function set checkPolicyFile(value:Boolean):void

Powiązane elementy interfejsu API

client

właściwość 
client:Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa obiekt na którym wywoływane są metody wywołania zwrotnego w celu obsługi danych strumieniowych lub pliku F4V/FLV. Domyślnym obiektem jest ten (this) tworzony obiekt NetStream. Jeśli właściwość client zostanie ustawiona na inny obiekt, metody wywołania zwrotnego będą w tym innym obiekcie. Obiekt NetStream.client może wywoływać następujące funkcje i odbierać skojarzone obiekty danych: onCuePoint(), onImageData(), onMetaData(), onPlayStatus(), onSeekPoint(), onTextData() i onXMPData().

Aby skojarzyć właściwość client do modułu obsługi zdarzeń:

  1. Utwórz obiekt i przypisz go do właściwości client obiektu NetStream:
         var customClient:Object = new Object();
         my_netstream.client = customClient;
         
  2. Przypisz funkcję modułu obsługi do określonego zdarzenia danych jako właściwość obiektu client:
         customClient.onImageData = onImageDataHandler;
         
  3. Napisz funkcję modułu obsługi, aby odbierać obiekt zdarzenia danych:
          public function onImageDataHandler(imageData:Object):void {
                  trace("imageData length: " + imageData.data.length);
          }
         

Gdy dane są przekazywane za pomocą strumienia lub w czasie odtwarzania, obiekt zdarzenia danych (w tym przypadku obiekt imageData) jest wypełniany danymi. W opisie zdarzenia onImageData znajduje się pełen przykład obiektu przypisanego do właściwości client.

Aby skojarzyć właściwość client do podklasy:

  1. Utwórz podklasę z funkcją modułu obsługi, aby odbierać obiekt zdarzenia danych:
         class CustomClient {
            public function onMetaData(info:Object):void {
                trace("metadata: duration=" + info.duration + " framerate=" + info.framerate);
         }
         
  2. Przypisz instancję podklasy do właściwości client obiektu NetStream:
         my_netstream.client = new CustomClient();
         

Gdy dane są przekazywane za pomocą strumienia lub w czasie odtwarzania, obiekt zdarzenia danych (w tym przypadku obiekt info) jest wypełniany danymi. Na końcu opisu klasy NetStream znajduje się przykład, który przedstawia przypisanie instancji podklasy do właściwości client.



Implementacja
    public function get client():Object
    public function set client(value:Object):void

Zgłasza
TypeError — Właściwość client musi obiektem różnym od wartości null.

Powiązane elementy interfejsu API

currentFPS

właściwość 
currentFPS:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Liczba wyświetlanych klatek na sekundę. Jeśli pliki wideo są eksportowane w celu odtwarzania na wielu systemach, sprawdzenie tej wartości podczas testowania będzie pomocne w określaniu kompresji, jaka jest stosowana do eksportowania pliku.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get currentFPS():Number

dataReliable

właściwość 
dataReliable:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa, czy wywołania NetStream.send() są realizowane w pełni niezawodnie. W przypadku wartości TRUE wywołania NetStream.send() są realizowane przez ten strumień NetStream jako w pełni niezawodne transmisje danych. W przypadku wartości FALSE wywołania NetStream.send() nie są realizowane z pełną niezawodnością; przesyłanie danych jest ponawiane przez pewien ograniczony czas, a po tym czasie dane są usuwane. Wartość FALSE umożliwia ograniczenie opóźnień kosztem jakości transmisji danych.

Próba ustawienia tej właściwości na FALSE dla protokołu sieciowego, który nie obsługuje częściowej niezawodności, zostanie zignorowana, a właściwość przyjmie wartość TRUE.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get dataReliable():Boolean
    public function set dataReliable(value:Boolean):void

Powiązane elementy interfejsu API

farID

właściwość 
farID:String  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

W przypadku połączeń RTMFP jest to identyfikator odległego węzła połączonego z wystąpieniem klasy NetStream.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get farID():String

farNonce

właściwość 
farNonce:String  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

W przypadku połączeń RTMFP i RTMPE jest to wartość wybrana przez drugi koniec strumienia, unikatowa dla tego połączenia. Wartość przedstawiana w drugim końcu strumienia jako wartość jego właściwości nearNonce.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get farNonce():String

inBufferSeek

właściwość 
inBufferSeek:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Określa, czy wyświetlane dane są buforowane na potrzeby inteligentnego wyszukiwania (TRUE), czy nie (FALSE). Wartością domyślną jest FALSE.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Wyszukiwanie inteligentne jest realizowane poprzez odpowiednie współdziałanie między serwerem Flash Media Server 3.5.3 a odtwarzaczem Flash Player 10.1. Przy wyszukiwaniu inteligentnym używane są bufor odtwarzania wstecz i odtwarzania do przodu, które umożliwiają wyszukiwanie bez żądania danych z serwera. Wyszukiwanie standardowe powoduje usuwanie danych z bufora i wysłanie do serwera żądania przesłania nowych danych z wyszukiwanego punktu czasowego.

Aby przejść naprzód lub wstecz o określoną liczbę klatek, należy wywołać metodę NetStream.step(). Aby przejść naprzód lub wstecz o określoną liczbę sekund, należy wywołać metodę NetStream.seek().

Wyszukiwanie inteligentne ogranicza obciążenie serwera i działa z większą wydajnością. Ustawiając inBufferSeek=true i wywołując metody step() oraz seek(), można zrealizować następującą funkcjonalność:

  • Odtwarzacz po stronie klienta. Wyszukiwanie może odbywać się w buforze po stronie klienta, bez pobierania nowego materiału wideo z serwera.
  • Tryby efektów specjalnych. Odtwarzacze, które przeskakują po kilka klatek oraz przewijają materiał w przód i w tył w przyspieszonym lub w zwolnionym tempie.

Gdy inBufferSeek=true, a wywołanie NetStream.seek() powiedzie się, właściwość NetStatusEvent info.description zawiera ciąg znaków "client-inBufferSeek".

Gdy wywołanie NetStream.step() powiedzie się, właściwość info.code obiektu NetStatusEvent zawiera ciąg znaków "NetStream.Step.Notify".



Implementacja
    public function get inBufferSeek():Boolean
    public function set inBufferSeek(value:Boolean):void

Powiązane elementy interfejsu API

info

właściwość 
info:NetStreamInfo  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Zwraca obiekt NetStreamInfo, którego właściwości zawierają statystyki o jakości usługi. Obiekt jest obrazem bieżącego stanu.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get info():NetStreamInfo

Powiązane elementy interfejsu API

liveDelay

właściwość 
liveDelay:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Ilość danych (liczba sekund) strumienia subskrypcji w trybie "na żywo" (bez buforowania). Ta właściwość określa bieżące opóźnienie przesyłania w sieci.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Ta właściwość przeznaczona jest głównie do użycia z serwerem (np. Flash Media Server); więcej informacji znajduje się w opisie klasy.

Wartość tej właściwości można pobrać, aby dokonać przybliżonego pomiaru jakości przesyłania strumienia i przekazać go użytkownikowi.



Implementacja
    public function get liveDelay():Number

maxPauseBufferTime

właściwość 
maxPauseBufferTime:Number

Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Określa czas buforowania komunikatów w trybie wstrzymania, w sekundach. Ta właściwość może zostać użyta do ograniczenia ilości buforowanych danych w trybie wstrzymania. Po osiągnięciu przez wartość właściwości NetStream.bufferLength ograniczenia buforowanie zostanie zatrzymane.

Jeśli ta wartość nie zostanie ustawiona, wartością domyślną ograniczenia dla każdego wstrzymania będzie 60 sekund lub dwukrotna wartość właściwości NetStream.bufferTime, w zależności od tego, która z tych wartości jest większa.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get maxPauseBufferTime():Number
    public function set maxPauseBufferTime(value:Number):void

Powiązane elementy interfejsu API

multicastAvailabilitySendToAll

właściwość 
multicastAvailabilitySendToAll:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa, czy komunikaty multiemisji P2P o dostępności fragmentów są wysyłane do wszystkich węzłów równorzędnych, czy tylko do jednego węzła. Wartość TRUE oznacza, że komunikaty są wysyłane do wszystkich węzłów równorzędnych, raz na zadany okres. Wartość FALSE oznacza, że komunikaty są wysyłane do jednego węzła równorzędnego, raz na zadany okres. Okres jest zdefiniowany we właściwości multicastAvailabilityUpdatePeriod.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastAvailabilitySendToAll():Boolean
    public function set multicastAvailabilitySendToAll(value:Boolean):void

Powiązane elementy interfejsu API

multicastAvailabilityUpdatePeriod

właściwość 
multicastAvailabilityUpdatePeriod:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa okres (w sekundach) między operacjami wysyłania do węzłów równorzędnych komunikatów informujących o dostępności fragmentów multimediów w multiemisji P2P na lokalnym węźle. Większe wartości zwiększają wydajność przetwarzania partii danych i zmniejszają narzut związany z danymi sterującymi, ale mogą prowadzić do obniżenia jakości po stronie odbiorczej, ponieważ powodują skrócenie czasu, przez jaki można pobierać fragmenty, zanim minie ich okno czasowe. Niższe wartości mogą powodować ograniczenie opóźnień i poprawę jakości, ale zwiększają narzut związany z danymi sterującymi.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastAvailabilityUpdatePeriod():Number
    public function set multicastAvailabilityUpdatePeriod(value:Number):void

Powiązane elementy interfejsu API

multicastFetchPeriod

właściwość 
multicastFetchPeriod:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa czas w sekundach, jaki upływa między uzyskaniem przez węzeł lokalny informacji o dostępności fragmentu multimediów w multiemisji P2P a próbą pobrania tego fragmentu z węzła równorzędnego. Modyfikując tę wartość, można proaktywnie wymusić pobranie fragmentu przez węzeł lokalny wcześniej niż podjęta zostałaby próba samoczynnego pobrania tego fragmentu. Możliwe jest również doprowadzenie do sytuacji, w której dostępność fragmentu będzie anonsowana przez więcej niż jeden węzeł, a pobieranie zostanie rozłożone na wiele węzłów.

Większe wartości poprawiają równoważenie obciążenia i „sprawiedliwość” dystrybucji w sieci P2P, jednak skracają okno multicastWindowDuration i zwiększają opóźnienia. Mniejsze wartości mogą ograniczyć opóźnienia, gdy wymagane jest pobieranie fragmentów, ale jednocześnie mogą prowadzić do wielokrotnego odbierania tych samych danych i pogarszają równowagę obciążenia w sieci P2P.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastFetchPeriod():Number
    public function set multicastFetchPeriod(value:Number):void

Powiązane elementy interfejsu API

multicastInfo

właściwość 
multicastInfo:NetStreamMulticastInfo  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP zwraca obiekt NetStreamMulticastInfo, którego właściwości zawierają dane statystyczne o jakości usług. Obiekt jest obrazem bieżącego stanu.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastInfo():NetStreamMulticastInfo

Powiązane elementy interfejsu API

multicastPushNeighborLimit

właściwość 
multicastPushNeighborLimit:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa maksymalną liczbę węzłów równorzędnych, do których mają być proaktywnie przekazywane multimedia przesyłane w multiemisji.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastPushNeighborLimit():Number
    public function set multicastPushNeighborLimit(value:Number):void

multicastRelayMarginDuration

właściwość 
multicastRelayMarginDuration:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa czas (w sekundach), przez jaki dane multiemisji P2P pozostają dostępne do wysłania do węzłów równorzędnych, które zażądają ich już po upływie okna czasowego. Długość okna czasowego określa się we właściwości multicastWindowDuration.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastRelayMarginDuration():Number
    public function set multicastRelayMarginDuration(value:Number):void

Powiązane elementy interfejsu API

multicastWindowDuration

właściwość 
multicastWindowDuration:Number

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa w sekundach długość okna czasowego składania fragmentów multiemisji P2P. Krótsze wartości powodują zmniejszenie opóźnień, ale mogą pogorszyć jakość transmisji, uniemożliwiając pobranie wszystkich fragmentów z uwagi na zbyt krótkie okno czasowe. Z kolei większe wartości mogą przyczynić się do poprawy jakości, pozwalając na pobranie wszystkich fragmentów, ale kosztem większych opóźnień.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get multicastWindowDuration():Number
    public function set multicastWindowDuration(value:Number):void

Powiązane elementy interfejsu API

nearNonce

właściwość 
nearNonce:String  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

W przypadku połączeń RTMFP i RTMPE jest to wartość wybrana przez ten koniec strumienia, unikatowa dla tego połączenia. Wartość pojawia się na drugim końcu strumienia jako wartość jego właściwości farNonce.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get nearNonce():String

objectEncoding

właściwość 
objectEncoding:uint  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Kodowanie obiektów (wersja AMF) dotyczące tego obiektu NetStream. Obiekt NetStream dziedziczy wartość właściwości objectEncoding po skojarzonym z nim obiekcie NetConnection. Zrozumienie tej właściwości jest ważne, jeśli plik SWF w formacie ActionScript 3.0 wymaga porozumiewania się z serwerami obsługującymi wersje poprzedzające Flash Player 9. Aby uzyskać więcej informacji, należy zapoznać się z opisem właściwości objectEncoding w klasie NetConnection.

Wartość tej właściwości zależy od tego, czy strumień jest strumieniem lokalnym, czy zdalnym. Strumienie lokalne, w których do metody NetConnection.connect() przekazano wartość null, zwracają wartość właściwości NetConnection.defaultObjectEncoding. Zdalne strumienie, w których nawiązywane jest połączenie z serwerem, zwracają kodowanie obiektu dla połączenia z serwerem.

Jeśli nastąpi próba odczytu tej właściwości w momencie, gdy nie jest ona połączona lub nastąpi próba zmiany tej właściwości, aplikacja zgłosi wyjątek.



Implementacja
    public function get objectEncoding():uint

Powiązane elementy interfejsu API

peerStreams

właściwość 
peerStreams:Array  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5

Obiekt przechowujący wszystkie subskrybujące wystąpienia klasy NetStream, które wykrywają to publikujące wystąpienie klasy NetStream.



Implementacja
    public function get peerStreams():Array

soundTransform

właściwość 
soundTransform:flash.media:SoundTransform

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9

Zapewnia kontrolę nad dźwiękiem reprezentowanym przez ten obiekt NetStream. Aby uzyskać więcej informacji, należy zapoznać się z opisem klasy SoundTransform.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get soundTransform():flash.media:SoundTransform
    public function set soundTransform(value:flash.media:SoundTransform):void

Powiązane elementy interfejsu API

time

właściwość 
time:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Położenie wskaźnika odtwarzania (w sekundach).

Serwer Flash Media Server: dla strumienia subskrypcji liczba sekund, które zostały odtworzone w strumieniu. Dla strumienia publikowania liczba sekund, które zostały opublikowane w strumieniu. Ta liczba odpowiada miejscu tysięcznemu; aby uzyskać liczbę milisekund odtworzonych w strumieniu, należy pomnożyć tę liczbę przez 1000.

Dla strumienia subskrypcji, jeśli serwer zatrzyma wysyłanie danych, ale strumień nadal pozostanie otwarty, wartość właściwości time nie będzie zwiększana. W chwili, gdy serwer rozpocznie ponowne wysyłanie danych, zwiększanie wartości będzie kontynuowane od miejsca zatrzymania (miejsca, w którym serwer zatrzymał wysyłanie danych).

Wartość właściwości time jest ponownie zwiększana, kiedy strumień jest przełączany między elementami listy odtwarzania. Właściwość ma wartość 0, gdy metoda NetStream.play() jest wywoływana z parametrem reset ustawionym na wartość 1 lub true lub, gdy wywoływana jest metoda NetStream.close().



Implementacja
    public function get time():Number

Powiązane elementy interfejsu API

useHardwareDecoder

właściwość 
useHardwareDecoder:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3

Określa, czy w strumieniu ma być używane dekodowanie przyspieszane sprzętowo.

Uwaga: Tej właściwości nie można ustawiać podczas odtwarzania wideo. Należy ustawiać ją przed wywołaniem metody NetStream.play().

Wartością domyślną jest true.



Implementacja
    public function get useHardwareDecoder():Boolean
    public function set useHardwareDecoder(value:Boolean):void

Powiązane elementy interfejsu API

useJitterBuffer

właściwość 
useJitterBuffer:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11.3, AIR 3.3

Minimalizuje opóźnienia w przypadku przesyłania strumieniowego na żywo bez bufora (bufferTime = 0). Nie jest używany konserwatywny mechanizm doganiania oparty na wysyłaniu (push) danych. Zamiast tego wiadomości audio są umieszczane w adaptacyjnym buforze o zmiennym rozmiarze. Gdy urządzenie głośnika wymaga dźwięku, wiadomości są pobierane z bufora o zmiennym rozmiarze, dekodowane i odtwarzane. Kodeki Speex i G.711 zawsze korzystają z tej metody opartej na pobieraniu (pull) — niezależnie od ustawień. (Właściwość useJitterBuffer ma wartość true dla kodeków Speex/G.711). Włączenie tego ustawienia w trybie niebuforowanym powoduje, że wszystkie kodeki, w tym Speex, G.711, Nellymoser, MP3 i AAC, używają bufora o zmiennym rozmiarze. Ta właściwość nie ma wpływu na tryb buforowany (bufferTime > 0). W tym trybie właściwość useJitterBuffer ma wartość false.



Implementacja
    public function get useJitterBuffer():Boolean
    public function set useJitterBuffer(value:Boolean):void

videoReliable

właściwość 
videoReliable:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa, czy wideo jest przesyłane w pełni niezawodnie. Wartość TRUE oznacza, że wideo jest przez dany strumień NetStream przesyłane w pełni niezawodnie. Wartość FALSE oznacza, że przesyłanie wideo nie jest w pełni niezawodne, a wideo jest w razie potrzeby ponownie przesyłane tylko przez ograniczony czas, po czym dane wideo są usuwane. Ustawienie FALSE pozwala na ograniczenie opóźnień kosztem jakości wideo.

Próba ustawienia tej właściwości na FALSE dla protokołu sieciowego, który nie obsługuje częściowej niezawodności, zostanie zignorowana, a właściwość przyjmie wartość TRUE.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get videoReliable():Boolean
    public function set videoReliable(value:Boolean):void

Powiązane elementy interfejsu API

videoSampleAccess

właściwość 
videoSampleAccess:Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

W przypadku połączeń RTMFP określa, czy subskrybenci P2P tego strumienia NetStream mogą przechwytywać strumień wideo. Wartość FALSE powoduje, że próba przechwycenia strumienia wideo przez subskrybenta wywoła błąd braku uprawnień.

Uwaga: ta właściwość nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.



Implementacja
    public function get videoSampleAccess():Boolean
    public function set videoSampleAccess(value:Boolean):void

Powiązane elementy interfejsu API

videoStreamSettings

właściwość 
videoStreamSettings:VideoStreamSettings

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11/ConnectAddin, AIR 3

Określa właściwości kompresji strumienia. Więcej informacji znajduje się w opisie klasy VideoStreamSettings. W przypadku braku kamery podłączonej do systemu zwracana jest wartość null.



Implementacja
    public function get videoStreamSettings():VideoStreamSettings
    public function set videoStreamSettings(value:VideoStreamSettings):void

Powiązane elementy interfejsu API

Konstruktor Szczegół

NetStream

()Konstruktor
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Tworzy strumień, którego można używać w celu odtwarzania plików multimedialnych i wysyłania danych za pomocą obiektu NetConnection.

Brak obsługi zdarzenia netStatus obiektu NetStream jest sytuacją nieprawidłową. Aby uniknąć błędów, należy zarejestrować detektor zdarzenia netStatus po utworzeniu obiektu NetStream i przed wywołaniem jego metody play().

Parametry
connection:NetConnection — Obiekt NetConnection.
 
peerID:String (default = "connectToFMS") — Ten parametr opcjonalny jest dostępny w programie Flash Player 10 i nowszych wersjach; jest przeznaczony do użycia z połączeniami RTMFP. (Jeśli wartość właściwości NetConnection.protocol jest różna od "rtmfp", ten parametr zostanie zignorowany). Należy użyć jednej z następujących wartości:
  • Aby nawiązać połączenie z serwerem Flash Media Server, należy określić NetStream.CONNECT_TO_FMS.
  • Aby bezpośrednio publikować do komputerów równorzędnych, należy określić NetStream.DIRECT_CONNECTIONS.
  • Aby odtwarzać bezpośrednio z określonego równorzędnego komputera, należy określić jego tożsamość (informacje na ten temat znajdują się we właściwości NetConnection.nearID oraz NetStream.farID).
  • (Flash Player 10.1 lub AIR 2 i nowsze wersje) Aby publikować lub odtwarzać w równorzędnej grupie multiemisji, należy określić ciąg znaków groupspec (zobacz opis klasy GroupSpecifier).

W większości przypadków groupspec umożliwia użycie wyjściowego łącza sieciowego w systemie lokalnym. W takiej sytuacji użytkownik jest proszony o zgodę na wykorzystanie zasobów sieciowych komputera. Jeśli użytkownik wyrazi taką zgodę, do detektora zdarzeń obiektu NetConnection wysyłane jest zdarzenie NetStatusEvent NetStream.Connect.Success. Jeśli użytkownik nie wyrazi zgody, wysyłane jest zdarzenie NetStream.Connect.Rejected. W przypadku podawania specyfikacji groupspec do czasu odebrania zdarzenia NetStream.Connect.Success nie jest dozwolone użycie jakichkolwiek metod obiektu NetStream; każda taka próba spowoduje zgłoszenie wyjątku.

Jeśli ten parametr zostanie uwzględniony w instrukcji konstruktora, ale będzie miał wartość null, zostanie przyjęta wartość "connectToFMS".


Zgłasza
ArgumentError — Instancja NetConnection nie jest połączona.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy kod przedstawia połączenie umożliwiające stopniowe pobieranie i odtwarzanie wideo przypisanego do zmiennej videoURL:
var my_video:Video = new Video();
addChild(my_video);
var my_nc:NetConnection = new NetConnection();
my_nc.connect(null);
var my_ns:NetStream = new NetStream(my_nc);
my_video.attachNetStream(my_ns);
my_ns.play(videoURL);

Poniższy kod przedstawia połączenie umożliwiające strumieniowanie i odtwarzanie wideo (przypisanego do zmiennej videoURL) na zdalnej instancji serwera Flash Media Server określonego w poleceniuconnect():
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);
Szczegół metody

appendBytes

()metoda
public function appendBytes(bytes:ByteArray):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Przekazuje obiekt ByteArray do obiektu NetStream w celu odtworzenia. Tę metodę należy wywołać w obiekcie NetStream, który znajduje się w trybie generowania danych. Aby przełączyć obiekt NetStream w tryb generowania danych, należy zastosować wywołanie NetStream.play(null) w obiekcie NetStream utworzonym dla obiektu NetConnection połączonego z hostem null. Wywołanie metody appendBytes() w obiekcie NetStream, który nie znajduje się w trybie generowania danych, stanowi błąd i powoduje zgłoszenie wyjątku.

Uwaga: ta metoda nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Analizator bajtów wykonuje analizę pliku FLV, wykorzystując nagłówek. Po przeanalizowaniu nagłówka metoda appendBytes() oczekuje, że wszystkie następne wywołania będą kontynuacją tego samego pliku rzeczywistego lub wirtualnego. Kolejny nagłówek nie jest oczekiwany, chyba że zostanie użyte wywołanie appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN).

Obiekt NetStream zawiera dwa bufory: kolejka FIFO z metody appendBytes() dla obiektu NetStream oraz bufor odtwarzania. Kolejka FIFO to bufor składania zawierający najwyżej jeden niepełny znacznik FLV. Wywołuje metodę NetStream.seek() w celu opróżnienia obu buforów. Po wywołaniu metody seek() należy wywołać metodę appendBytesAction(), aby ponownie ustawić na osi czasu początek znacznika czasu kolejnego dołączonego komunikatu.

Każde wywołanie metody appendBytes() powoduje dodawanie bajtów do kolejki FIFO do momentu zapełnienia znacznika FLV. Gdy znacznik FLV będzie pełny, zostanie przeniesiony do buforu odtwarzania. Wywołanie metody appendBytes() może spowodować zapisanie wielu znaczników FLV. Pierwsze bajty zapełnią istniejący znacznik FLV (który zostanie przeniesiony do buforu odtwarzania). Pełne znaczniki FLV są przenoszone do buforu odtwarzania. Pozostałe bajty, które nie wejdą w skład pełnego znacznika FLV, zostaną umieszczone w kolejce FIFO. Bajty w kolejce FIFO zostaną zapełnione przez wywołanie metody appendBytes() lub opróżnione przez wywołanie meotdy appendBytesAction() z argumentem RESET_SEEK lub RESET_BEGIN.

Uwaga: Analizator bajtów może nie być w stanie w pełni zdekodować wywołania appendBytes(), dopóki nie zostanie wykonane kolejne wywołanie metody appendBytes().

Parametry

bytes:ByteArray

Powiązane elementy interfejsu API

appendBytesAction

()metoda 
public function appendBytesAction(netStreamAppendBytesAction:String):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Wskazuje przerwę na osi czasu, opróżnia kolejkę FIFO i informuje analizator bajtów o tym, aby oczekiwał nagłówka pliku lub początku znacznika FLV.

Uwaga: ta metoda nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Wywołuje metodę NetStream.seek() w celu opróżnienia buforów NetStream. Analizator bajtów pozostaje w trybie opróżniania do momentu wywołania metody appendBytesAction() i przekazania argumentu RESET_BEGIN lub RESET_SEEK. Po wyszukiwaniu należy przechwycić zdarzenie "NetStream.Seek.Notify", aby wywołać metodę appendBytesAction(). Nowy nagłówek pliku może obsługiwać listy odtwarzania i wyszukiwanie bez konieczności wywoływania metody NetStream.seek().

Można również wywołać tę metodę w celu wyzerowania licznika bajtów dla wywołania zwrotnego onSeekPoint()).

Parametry

netStreamAppendBytesAction:String

Powiązane elementy interfejsu API

attach

()metoda 
public function attach(connection:NetConnection):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Przyłącza strumień do nowego obiektu NetConnection. Wywołanie tej metody powoduje przyłączenie obiektu NetStream do nowego obiektu NetConnection po przerwaniu i ponownym nawiązaniu połączenia. Odtwarzacz Flash Player i środowisko AIR wznawiają przesyłanie strumieniowe od punktu, w którym doszło do utraty połączenia. Metody tej można także użyć do implementacji równoważenia obciążenia.

Ta metoda wymaga serwera Flash Media Server w wersji 3.5.3 lub nowszej.

Informacje na temat użycia tej metody do implementacji ponownego nawiązywania połączenia strumieniowego zawiera dokumentacja serwera Flash Media Server 3.5.3.

Aby użyć tej metody do równoważenia obciążenia:

  1. Przyłącz połączony strumień do obiektu NetConnection na innym serwerze.
  2. Po pomyślnym przyłączeniu strumienia do nowego połączenia wywołaj metodę NetConnection.close() w poprzednim połączeniu, aby zapobiec wyciekowi danych.
  3. Wywołaj metodę NetStream.play2() i ustaw właściwość NetStreamPlayOptions.transition na RESUME. Pozostałym wartościom obiektu NetStreamPlayOptions nadaj te same wartości, co przy pierwotnym wywołaniu NetStream.play() lub NetStream.play2() rozpoczynającym odtwarzanie strumienia.

Parametry

connection:NetConnection

Powiązane elementy interfejsu API

attachAudio

()metoda 
public function attachAudio(microphone:Microphone):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9

Dołącza do obiektu NetStream strumień audio pochodzący z obiektu Microphone przekazanego jako źródło. Ta metoda jest dostępna jedynie dla wydawcy określonego strumienia.

Zastosowanie tej metody z serwerem Flash Media Server umożliwia wysyłanie do serwera dźwięku na żywo. Wywołanie tej metody musi nastąpić przez lub po wywołaniu metody publish().

Aby dopasować częstotliwość urządzenia do przechwytywania dźwięków, należy ustawić właściwość Microphone.rate. Aby ustawić próg poziomu ciszy, należy wywołać metodę setSilenceLevel(). Do sterowania właściwościami dźwięku (głośność i przesunięcie) w strumieniu audio służy właściwość Microphone.soundTransform.

     var nc:NetConnection = new NetConnection();
     nc.connect("rtmp://server.domain.com/app");
     var ns:NetStream = new NetStream(nc);
     
     var live_mic:Microphone = Microphone.get();
     live_mic.rate = 8;
     live_mic.setSilenceLevel(20,200);
     
     var soundTrans:SoundTransform = new SoundTransform();
     soundTrans.volume = 6;
     live_mic.soundTransform = soundTrans;
     
     ns.attachAudio(live_mic);
     ns.publish("mic_stream","live")
     

Aby usłyszeć dźwięk, należy wywołać metodę NetStream.play() oraz wywołać metodę DisplayObjectContainer.addChild() w celu przekierowania dźwięku do obiektu znajdującego się na liście wyświetlania.

Parametry

microphone:Microphone — Źródło strumienia audio do transmisji.

Powiązane elementy interfejsu API

attachCamera

()metoda 
public function attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9

Rozpoczyna przechwytywanie danych wideo z kamery lub zatrzymuje przechwytywanie, jeśli parametr theCamera ma wartość null. Ta metoda jest dostępna jedynie dla wydawcy określonego strumienia.

Ta metoda przeznaczona jest do użycia z serwerem Flash Media Server; więcej informacji znajduje się w opisie klasy.

Po dołączeniu źródła wideo należy wywołać metodę NetStream.publish() w celu rozpoczęcia transmitowania. Subskrybenci chcący wyświetlić wideo muszą wywołać metody NetStream.play() i Video.attachCamera(), aby wyświetlić wideo na stole montażowym.

Parametru snapshotMilliseconds można użyć w celu wysłania pojedynczej migawki (przekazując wartość 0) lub serii migawek — czyli w efekcie poklatkowego materiału filmowego — przekazując dodatnią liczbę, która spowoduje dodanie do materiału wideo zwiastuna o określonej liczbie milisekund. Zwiastun wydłuża czas wyświetlania komunikatu wideo. Wielokrotne wywoływanie metody attachCamera() z dodatnią wartością dla parametru snapshotMilliseconds umożliwia utworzenie materiału filmowego z sekwencji naprzemiennie odtwarzanych migawek i zwiastunów. Można na przykład każdego dnia przechwytywać pojedynczą klatkę i dołączać ją do pliku wideo. W momencie, gdy subskrybent odtwarza plik, każda klatka pozostaje widoczna na ekranie przez określoną liczbę milisekund, a następnie wyświetlana jest kolejna klatka.

Cel parametru snapshotMilliseconds jest inny od celu parametru fps, który można ustawić za pomocą metody Camera.setMode(). Podczas określania parametru snapshotMilliseconds można sterować czasem, jaki upływa pomiędzy zapisanymi klatkami. Określenie parametru fps za pomocą metody Camera.setMode() umożliwia sterowanie upływającym czasem podczas nagrywania i odtwarzania.

Na przykład użytkownik zechce zrobić migawkę co każde 5 minut, aby uzyskać w sumie 100 migawek. Można to zadanie wykonywać na dwa sposoby:

  • Wydając polecenie NetStream.attachCamera(myCamera, 500) 100 razy, jedno co każde 5 minut. Aby nagrać ten strumień należy poświęcić 500 minut, jednak wynikowy plik to 50 sekund (100 klatek i 500 milisekund pomiędzy klatkami).
  • Wydając polecenie Camera.setMode() z parametrem fps o wartości 1/300 (jedna klatka na 300 sekund lub jedna co każde 5 minut), a następnie polecenie NetStream.attachCamera(source), aby zezwolić kamerze na ciągłe przechwytywanie przez 500 minut. Wynikowy plik będzie odtwarzany przez 500 minut — taki sam czas, w jakim został nagrywany — z każdą klatką wyświetlaną przez 5 minut.

Obie techniki przechwytują te same 500 klatek i oba podejścia są użyteczne; wybór podejścia zależy głównie od wymagań odtwarzania. Na przykład w drugim przypadku dźwięk może być nagrywany przez cały czas. Oba pliki w przybliżeniu będą miały ten sam rozmiar.

Parametry

theCamera:Camera — Źródło transmisji wideo. Poprawnymi wartościami jest obiekt Camera (który rozpoczyna przechwytywanie wideo) oraz wartość null. Jeśli przekazana zostanie wartość null, aplikacja zatrzyma przechwytywanie wideo i wszystkie dodatkowe parametry, wysyłane przez użytkownika, zostaną zignorowane.
 
snapshotMilliseconds:int (default = -1) — Określa, czy strumień wideo jest ciągły, jest pojedynczą klatką lub serią pojedynczych klatek użytych w celu utworzenia fotografii poklatkowej.
  • Jeśli parametr zostanie pominięty, aplikacja będzie przechwytywała wideo dopóki do metody attachCamera nie zostanie przekazana wartość null.
  • Jeśli przekazana zostanie wartość 0, aplikacja przechwyci tylko jedną klatkę. Ta wartość służy do przesyłania „migawek” w ramach istniejącego strumienia. Program Flash Player lub środowisko AIR interpretuje argumenty niepoprawne, ujemne i nieliczbowe jako 0.
  • Jeśli przekazana zostanie liczba dodatnia, aplikacja przechwyci pojedynczą klatkę wideo, a następnie dołączy przerwę o określonej długości po migawce. Ta wartość umożliwia tworzenie efektów fotografii poklatkowej.

close

()metoda 
public function close():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Zatrzymuje odtwarzanie wszystkich danych strumienia, ustawia właściwość time na 0 i czyni strumień dostępnym dla innych celów. Ta metoda usuwa również lokalną kopię pliku wideo pobranego za pomocą protokołu HTTP. Mimo że aplikacja usuwa lokalną kopię pliku, który utworzyła, kopia może nadal istnieć w katalogu pamięci podręcznej. Jeśli zaistnieje potrzeba całkowitego zablokowania możliwości buforowania lub lokalnego przechowywania plików wideo, należy wówczas użyć serwera Flash Media Server.

Używając serwera Flash Media Server, ta metoda będzie wywoływana niejawnie w momencie wywołania metody NetStream.play() ze strumienia publikowania lub metody NetStream.publish() ze strumienia subskrypcji. Należy zauważyć, że:

  • Jeśli ze strumienia publikowania wywołana zostanie metoda close(), publikowanie w strumieniu zostanie zatrzymane, a wydawca będzie mógł od tego momentu używać strumienia do innych celów. Subskrybenci nie będą otrzymywać niczego więcej ze strumienia, ponieważ publikowanie zostało zatrzymane.
  • Jeśli ze strumienia subskrypcji wywołana zostanie metoda close(), odtwarzanie strumienia zostanie zatrzymane i subskrybent będzie mógł go używać do innych celów. Nie dotyczy to pozostałych subskrybentów.
  • Strumień subskrypcji można zatrzymać bez konieczności zatrzymywania lub zmiany jego typu za pomocą wywołania flash.net.NetStream.play(false).

Powiązane elementy interfejsu API

dispose

()metoda 
public function dispose():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 11, AIR 3.0

Zwalnia wszystkie źródła kontrolowane przez obiekt NetStream.

Metoda dispose() działa podobnie do metody close. Główna różnica między tymi metodami polega na tym, że metoda dispose() zwalnia pamięć służącą do wyświetlania bieżącej klatki wideo. Jeśli ta klatka jest w danej chwili wyświetlana na ekranie, powoduje to zniknięcie obrazu z ekranu. Metoda close() nie usuwa zawartości ekranu, gdyż nie zwalnia tej pamięci.

onPeerConnect

()metoda 
public function onPeerConnect(subscriber:NetStream):Boolean

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Wywoływana, gdy strumień publikowania między równorzędnymi komputerami odpowiada strumieniowi subskrypcji między równorzędnymi komputerami. Zanim subskrybent zostanie połączony z wydawcą, należy wywołać tę metodę, aby umożliwić dostosowanie sterowania dostępem do publikowania pomiędzy równorzędnymi komputerami za pomocą kodu języka ActionScript. Poniższy kod przedstawia przykład tworzenia funkcji wywołania zwrotnego dla tej metody:

     var c:Object = new Object;
     c.onPeerConnect = function(subscriber:NetStream):Boolean {
      if (accept)
          return true;
      else
          return false;
      };
      m_netStream.client = c;
     

Jeśli równorzędny wydawca nie implementuje tej metody, na wszystkich równorzędnych komputerach będzie można odtworzyć dowolną opublikowaną zawartość.

Parametry

subscriber:NetStream

Zwraca
Boolean

pause

()metoda 
public function pause():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wstrzymuje odtwarzanie strumienia wideo. Wywołanie tej metody nie skutkuje niczym, jeśli wideo zostało już wcześniej wstrzymane. Aby wznowić odtwarzanie wideo po jego wstrzymaniu, należy wywołać metodę resume(). Aby możliwe było przełączanie pomiędzy wstrzymywaniem i odtwarzaniem (wideo jest najpierw wstrzymywane, następnie wznawiane), należy wywołać metodę togglePause().

Dd wersji Flash Player 9.0.115.0 program Flash Player nie czyści więcej bufora, gdy wywoływana jest metoda NetStream.pause(). To zachowanie jest określane jako inteligentne wstrzymanie. W wersjach starszych niż 9.0.115.0 program Flash Player oczekiwał na wypełnienie bufora przed wznowieniem odtwarzania, co często powodowało opóźnienie.

Uwaga: W celu zachowania zgodności ze starszym kodem zdarzenie NetStream.Buffer.Flush (informacje w opisie właściwości NetStatusEvent.info) nadal jest wywoływane, choć serwer nie opróżnia bufora.

Dla pojedynczego wstrzymania właściwość NetStream.bufferLength posiada ograniczenie 60 sekund lub dwukrotną wartość właściwości NetStream.bufferTime w zależności do tego, która wartość jest wyższa. Na przykład jeśli właściwość bufferTime ma wartość 20 sekund, program Flash Player buforuje dane aż do momentu, w którym właściwość NetStream.bufferLength jest wyższą z dwóch wartości: 20*2 (40) albo 60; w tym przypadku dane będą buforowane aż do osiągnięcia przez właściwość bufferLength wartości 60. Jeśli właściwość bufferTime ma wartość 40 sekund, program Flash Player buforuje dane aż do momentu, w którym właściwość bufferLength jest wyższą z dwóch wartości: 40*2 (80) albo 60; w tym przypadku dane będą buforowane, aż do osiągnięcia przez właściwość bufferLength wartości 80.

Właściwość bufferLength posiada także ograniczenie bezwzględne. Jeśli wywołanie metody pause() spowoduje wzrost wartości właściwości bufferLength do ponad 600 sekund lub dwukrotności wartości właściwości bufferTime program Flash Player, w zależności od tego, która wartość jest wyższa, opróżnia bufor i ponownie ustawia wartość 0 dla właściwości bufferLength. Na przykład jeśli właściwość bufferTime ma wartość 120 sekund, program Flash Player opróżnia bufor, jeśli właściwość bufferLength osiąga wartość 600 sekund; jeśli właściwość bufferTime ma wartość 360 sekund, program Flash Player opróżnia bufor, jeśli właściwość bufferLength osiąga wartość 720 sekund.

Wskazówka: W kodzie można użyć metody NetStream.pause(), aby buforować dane, gdy obserwatorzy oglądają na przykład reklamę, a następnie wznowić w momencie rozpoczęcia głównego wideo.

Powiązane elementy interfejsu API

play

()metoda 
public function play(... arguments):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Odtwarza plik multimedialny z katalogu lokalnego lub serwera sieci Web; odtwarza plik multimedialny lub strumień „na żywo” z serwera Flash Media Server. Wywołuje obiekt NetStatusEvent w celu zgłoszenia statusu i komunikatów o błędzie.

Informacje na temat obsługiwanych kodeków i formatów plików można znaleźć w następującej dokumentacji:

Przepływ operacji dot. odtwarzania pliku lub strumienia „na żywo”

  1. Utwórz obiekt Video, który będzie wyświetlał wideo, i wywołaj metodę addChild(), aby dodać go do stołu montażowego.
  2. Utwórz obiekt NetConnection i wywołaj metodę NetConnection.connect().

    Aby odtworzyć plik z katalogu lokalnego lub serwera sieci Web, przekaż wartość null.

    Aby odtworzyć nagrany plik lub strumień „na żywo” z serwera Flash Media Server, przekaż identyfikator URI aplikacji Flash Media Server.

  3. Wywołaj metodę addEventListener() obiektu NetConnection, aby wykryć zdarzenie netStatus (NetStatusEvent.NET_STATUS).
  4. W przypadku zdarzenia NetConnection.Connect.Success utwórz obiekt NetStream i przekaż do konstruktora obiekt NetConnection.
  5. Wywołaj metodę attachNetStream() obiektu Video i przekaż do niej obiekt NetStream.
  6. Wywołaj metodę play() obiektu NetStream.

    Aby odtworzyć strumień „na żywo”, przekaż nazwę strumienia przekazanego do metody NetStream.publish().

    Aby odtworzyć nagrany plik, przekaż nazwę pliku.

Uwaga: Sprawdzona procedura polega na dodawaniu obiektu Video za każdym razem do stołu montażowego, przyłączanie do niego obiektu NetStream, a następnie wywoływanie metody play() obiektu NetStream.

Włączanie trybu generowania danych

Aby włączyć tryb generowania danych, należy wywołać metodę play(null). W tym trybie wywołanie metody appendBytes() umożliwia dostarczanie danych do strumienia NetStream. Tryb generowania danych jest przeznaczony do strumieniowego przesyłania treści za pośrednictwem połączenia HTTP z modułu Adobe HTTP Dynamic Streaming Origin Module na serwerze HTTP Apache. Strumieniowe przesyłanie dynamiczne przez połączenie HTTP umożliwia klientom szybkie przechodzenie do dowolnych punktów w pliku (tzw. wyszukiwanie). Architektura Open Source Media Framework (OSMF) obsługuje strumieniowe przesyłanie dynamiczne przez połączenia HTTP w przypadku strumieni VOD i strumieni przesyłanych na żywo. Przykłady zastosowania obiektu NetStream w trybie generowania danych można znaleźć w kodzie źródłowym architektury OSMF. Więcej informacji na temat dynamicznego przesyłania strumieniowego przez połączenia HTTP można znaleźć na stronie Dynamiczne przesyłanie strumieniowe przez połączenie HTTP.

W przypadku użycia tej metody bez serwera Flash Media Server obowiązują pewne uwarunkowania związane z bezpieczeństwem. Plik w zaufanym lokalnym obszarze izolowanym lub lokalnym obszarze izolowanym z dostępem do sieci może ładować i odtwarzać plik wideo ze zdalnego obszaru izolowanego, ale nie może uzyskać dostępu do danych zdalnego pliku bez jawnego uprawnienia w postaci pliku reguł URL. Ponadto można uniemożliwić plikowi SWF użycie tej metody w programie Flash Player — w tym celu należy ustawić parametr allowNetworking znaczników object oraz embed na stronie HTML zawierającej treść SWF. Więcej informacji na temat zabezpieczeń zawiera odpowiedni temat w witrynie Flash Player Developer Center: Bezpieczeństwo.

Parametry

... arguments

Odtwarzanie pliku lokalnego

Położenie pliku multimedialnego. Argument może być obiektem String, właściwością URLRequest.url lub zmienną odwołującą się do łańcucha lub tej właściwości. W programie Flash Player i środowisku AIR treść poza obszarem izolowanym zabezpieczeń aplikacji może odtwarzać lokalne pliki wideo przechowywane w tym samym katalogu co plik SWF lub w jego podkatalogu; nie jest natomiast możliwe przejście do katalogu na wyższym poziomie.

Odtwarzanie pliku z serwera Flash Media Server

NazwaWymaganeOpis
name:ObjectWymagane Nazwa nagranego pliku, identyfikator danych „na żywo” publikowanych za pomocą metody NetStream.publish() lub wartość false. W przypadku wartości false strumień zatrzyma odtwarzanie, a wszystkie dodatkowe parametry zostaną zignorowane. Więcej informacji na temat składni dla nazwy pliku zawiera tabela dotycząca formatu pliku, znajdująca się poniżej tej tabeli.
start:NumberOpcjonalnie Czas rozpoczęcia odtwarzania, w sekundach. Dozwolonymi wartościami są -2, -1, 0 oraz liczby dodatnie. Wartością domyślną jest -2, która powoduje wyszukiwanie strumienia „na żywo”, a następnie strumienia nagranego; jeśli nie zostanie znaleziony żaden z nich, otwarty zostanie strumień „na żywo”. W przypadku plików MP3 nie można stosować wartości –2. Jeśli wartością jest -1, odtwarza tylko strumień „na żywo”. Jeśli wartością jest 0 lub liczba dodatnia, odtwarza zapisany strumień, rozpoczynając od miejsca wskazanego w parametrze start.
len:Number Opcjonalny, jeśli określony został parametr start. Czas trwania odtwarzania, w sekundach. Dozwolonymi wartościami są -1, -0 oraz liczby dodatnie. Wartością domyślną jest -1, która powoduje odtworzenie strumienia „na żywo” lub zapisanego strumienia, aż do jego zakończenia. Jeśli wartością jest 0, odtworzona zostanie pojedyncza klatka w miejscu przesuniętym względem początku nagranego strumienia o wartość parametru start (w sekundach). Jeśli wartością jest liczba dodatnia, strumień „na żywo” lub nagrany strumień będzie odtwarzany przez czas (określony liczbą sekund) wskazany w parametrze len.
reset:Object Opcjonalny, jeśli określony został parametr len. Określa, czy należy wyczyścić listę odtwarzania. Wartością domyślną jest 1 lub true, która powoduje natychmiastowe wyczyszczenie poprzednich wywołań metody play oraz natychmiastowe odtworzenie strumienia name. Jeśli wartością jest 0 lub false, strumień jest dodawany do listy odtwarzania. Jeśli wartością jest 2, lista odtwarzania zostanie zachowana i wszystkie komunikaty strumienia zostaną zwrócone jednorazowo, a nie przedziałami. Jeśli wartością jest 3, lista odtwarzania zostanie wyczyszczona i wszystkie komunikaty strumienia zostaną zwrócone jednorazowo.

Możliwe jest odtworzenie plików w formatach opisanych w poniższej tabeli. Składnia różni się w zależności od formatu pliku.

Format plikuSkładnia Przykład
FLVNazwę strumienia (w katalogu „samples”) należy określić jako ciąg bez rozszerzenia nazwy pliku.ns.play("samples/myflvstream");
mp3 lub ID3Nazwę strumienia (w katalogu „samples”) należy określić jako ciąg z prefiksem mp3: lub id3: bez rozszerzenia nazwy pliku.

ns.play("mp3:samples/mymp3stream");

ns.play("id3:samples/myid3data");

Pliki oparte na formacie MPEG-4 (na przykład F4V i MP4)Nazwę strumienia (w katalogu „samples”) należy określić jako ciąg znaków z przedrostkiem mp4:. Przedrostek stanowi dla serwera informację o tym, że plik zawiera materiał wideo zakodowany w formacie H.264 i dźwięk zakodowany w formacie AAC w kontenerze zgodnym z formatem MPEG-4 Part 14. Jeśli nazwa pliku na serwerze ma rozszerzenie, należy je podać.

ns.play("mp4:samples/myvideo.f4v");

ns.play("mp4:samples/myvideo.mp4");

ns.play("mp4:samples/myvideo");

ns.play("mp4:samples/myvideo.mov");

RAWNazwę strumienia (w katalogu „samples”) należy podać jako ciąg z przedrostkiem raw:.ns.play("raw:samples/myvideo");

Włączanie trybu generowania danych

Aby włączyć „tryb generowania danych”, należy przekazać wartość null do obiektu NetStream utworzonego dla połączenia NetConnection połączonego z hostem null. W tym trybie metoda appendBytes() umożliwia dostarczanie danych do strumienia NetStream. (Przekazanie wartości null dodatkowo powoduje wyzerowanie licznika bajtów dla funkcji wywołania zwrotnego onSeekPoint().)

Uwagi dotyczące wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS

W przypadku wideo w formacie H.264 interfejsy API systemu iOS przeznaczone do odtwarzania wideo przyjmują tylko adres URL wskazujący plik lub strumień. Nie można przekazać do dekodowania bufora danych wideo w formacie H264. W zależności od źródła wideo należy przekazać odpowiedni argument do metody NetStream.play() w następujący sposób:

  • W celu odtwarzania progresywnego należy przekazać adres URL pliku (lokalnego lub zdalnego).

  • W przypadku strumieniowej transmisji wideo należy przekazać adres URL listy odtwarzania w formacie HLS (HTTP Live Streaming) firmy Apple. Ten plik może być udostępniany na dowolnym serwerze. Oprogramowanie Flash Media Server w wersji 4.5 lub nowszej ma tę zaletę, że może kodować strumienie w formacie HLS.


Zdarzenia
status:StatusEvent — Wywoływane przy próbie odtworzenia treści zaszyfrowanej przy użyciu mechanizmu DRM. Wartość właściwości code to "DRM.encryptedFLV".

Zgłasza
SecurityError — Niezaufane pliki lokalne nie mogą komunikować się z siecią Internet. Można obejść to ograniczenie przez ponowne zaklasyfikowanie pliku SWF jako lokalnego z dostępem do sieci lub pliku zaufanego.
 
ArgumentError — Należy określić przynajmniej jeden parametr.
 
Error — Obiekt NetStream jest nieprawidłowy. Może być to spowodowane niepowodzeniem obiektu NetConnection.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )
Serwer Flash Media Server: Ten przykład ilustruje odtwarzanie nagranego pliku F4V z katalogu „samples”, zaczynając od początku, aż do 100. sekundy. W przypadku plików MPEG-4, jeśli plik na serwerze ma rozszerzenie nazwy, w metodzie play() również należy podać rozszerzenie.
     ns.play("mp4:samples/record1.f4v", 0, 100, true);
     
Serwer Flash Media Server: W przykładzie strumień FLV „na żywo” opublikowany przez klienta odtwarzany jest od początku do końca; odtwarzanie uruchamiane jest natychmiast:
     ns.play("livestream");
     

W poniższym przykładzie przedstawiono sposób ładowania zewnętrznego pliki FLV:
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

()metoda 
public function play2(param:NetStreamPlayOptions):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Umożliwia płynne przełączanie między plikami z różnymi szybkościami transmisji i wznowienie działania obiektu NetStream po przerwaniu i ponownym nawiązaniu połączenia.

Ta metoda jest rozszerzoną wersją metody NetStream.play(). Podobnie jak metoda play(), metoda play2() rozpoczyna odtwarzanie pliku multimedialnego lub kolejkuje pliki multimedialne, aby utworzyć listę odtwarzania. Jeśli jest używana z serwerem Flash Media Server, może ustawić żądanie przełączenia na inny plik multimedialny. Przejście następuje w sposób płynny i niewidoczny, w aplikacji klienckiej. Metoda przełączania strumieni play2() używana jest przy realizacji następujących funkcji:

Dynamiczne przesyłanie strumieniowe

Dynamiczne przesyłanie strumieniowe (obsługiwane przez serwer Flash Media Server 3.5 i nowsze wersje) umożliwia udostępnianie z serwera strumienia kodowanego z różnymi szybkościami transmisji. Gdy stan sieci użytkownika odbierającego strumień ulegnie zmianie, również szybkość transmisji zmienia się na taką, która zapewni optymalną jakość odbioru. Klasa NetStreamInfo umożliwia monitorowanie parametrów sieci i przełączanie strumieni w zależności od danych. Możliwe jest także przełączanie strumieni odpowiednio do parametrów danego klienta. Więcej informacji można znaleźć w sekcji „Dynamic streaming” w publikacji „Adobe Flash Media Server Developer Guide”.

Firma Adobe opracowała niestandardową klasę ActionScript o nazwie DynamicStream, która rozszerza klasę NetStream. Klasa DynamicStream umożliwia zaimplementowanie dynamicznego przesyłania strumieniowego w aplikacji, bez konieczności pisania własnego kodu wykrywającego bieżące parametry pracy sieci. Nawet jeśli programista zdecyduje się na napisanie własnej implementacji dynamicznego przesyłania strumieniowego, klasa DynamicStream może posłużyć za implementację referencyjną. Klasę i jej dokumentację można pobrać ze strony narzędzi i materiałów do pobrania dotyczących serwera Flash Media Server.

Ponowne podłączanie strumienia

Ponowne podłączanie strumienia (obsługiwane na serwerze Flash Media Server 3.5.3 lub nowszym) umożliwia użytkownikom nieprzerwany odbiór multimediów mimo utraty połączenia. Multimedia są dalej odtwarzane z bufora, a aplikacja ActionScript próbuje ponownie nawiązać połączenie z serwerem Flash Media Server. Po nawiązaniu połączenia należy wywołać metodę NetStream.attach(), aby użyć tego samego obiektu NetStream z nowym obiektem NetConnection. Do ponownego podłączenia strumienia służą następujące elementy interfejsu API: NetStream.attach(), NetStreamPlayTransitions.RESUME oraz NetStreamPlayTrasitions.APPEND_AND_WAIT. Więcej informacji zawiera Dokumentacja serwera Flash Media Server 3.5.3.

Parametry

param:NetStreamPlayOptions

Powiązane elementy interfejsu API

preloadEmbeddedData

()metoda 
public function preloadEmbeddedData(param:NetStreamPlayOptions):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.5, Flash Lite 4

Wyodrębnia metadane DRM z przechowywanego lokalnie pliku multimedialnego.

Pierwszym krokiem w procesie pobierania kuponów DRM potrzebnych do odtwarzania offline oraz zapisywania ich w pamięci podręcznej powinno być wywołanie metody preloadEmbeddedMetaData(). Gdy w pliku multimedialnym zostaną wykryte osadzone metadane DRM, do funkcji object is onDRMContentData klienta NetStream przekazywany jest obiekt DRMContentData. Ten obiekt DRMContentData zawiera informacje potrzebne do uzyskania kuponu niezbędnego do odtworzenia treści. Obiekt DRMContentDataObject należy przekazać do metody loadVoucher() obiektu DRMManager w celu pobrania kuponu.

Oto kroki procesu wstępnego ładowania kuponu DRM:

  • Utwórz nowy obiekt NetStream potrzebny do wstępnego załadowania metadanych.

  • Przypisz funkcję wywołania zwrotnego do właściwości onDRMContentData obiektu NetStream client.
  • Utwórz nowy obiekt NetStreamPlayOptions i przypisz jego właściwości streamName ciąg znaków adresu URL wskazujący na lokalny plik wideo.
  • Wywołaj metodę preloadEmbeddedMetadata(), przekazując obiekt NetStreamPlayOptions.
  • W odpowiedzi na wywołanie zwrotne onDRMContentData wywołaj metodę loadVoucher() obiektu DRMManager, przekazując obiekt DRMContentData. Jeśli właściwość authenticationMethod obiektu DRMContentData ma wartość userNameAndPassWord, wówczas należy uwierzytelnić użytkownika na serwerze uprawnień przed załadowaniem kuponu.
  • Zamknij obiekt NetStream używany do ładowania wstępnego.

Uwaga: Aby użyć tego samego obiektu NetStream od wstępnego ładowania metadanych i odtwarzania treści, należy przed rozpoczęciem odtwarzania poczekać na wywołanie funkcji onPlayStatus wygenerowane przez operację ładowania wstępnego.

Pobrane kupony są przechowywane w lokalnej pamięci podręcznej. Odtwarzanie treści online także powoduje pobranie kuponów i zapisanie ich w pamięci podręcznej. Podczas wyświetlania pliku z treścią chronioną przy użyciu mechanizmu DRM, kupon jest automatycznie pobierany z magazynu lokalnego. Do zarządzania pamięcią podręczną kuponów służy klasa DRMManager.

Uwaga: Wstępne ładowanie metadanych DRM za pośrednictwem połączeń HTTP, HTTPS lub RTMP nie jest obsługiwane. Wstępne ładowanie metadanych jest możliwe wyłącznie z plików przechowywanych w systemie plików.

Parametry

param:NetStreamPlayOptions — Obiekt NetStreamPlayOptions opisujący żądane opcje przetwarzania pliku treści.

Powiązane elementy interfejsu API

publish

()metoda 
public function publish(name:String = null, type:String = null):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9

Wysyła strumieniowo dane audio, wideo i komunikaty danych z klienta na serwer Flash Media Server, opcjonalnie rejestrując strumień w trakcie transmisji. Ta metoda wywołuje obiekt zdarzenia NetStatusEvent zawierający informacje o strumieniu. Przed wywołaniem metody NetStream.publish() należy przechwycić zdarzenie "NetConnection.Connect.Success" w celu sprawdzenia, czy aplikacja pomyślnie nawiązała połączenie z serwerem Flash Media Server.

Podczas publikowania można nagrywać pliki w formacie FLV lub F4V. W przypadku rejestrowania w formacie F4V należy użyć narzędzia „spłaszczającego” format, jeśli plik ma być odtwarzany lub edytowany w innej aplikacji. Narzędzie można pobrać ze strony www.adobe.com/go/fms_tools.

Uwaga: Nie należy używać tej metody do odtwarzania strumienia. Aby odtworzyć strumień, należy wywołać metodę NetStream.play().

Przepływ operacji publikowania strumienia

  1. Utwórz obiekt NetConnection i wywołaj metodę NetConnection.connect().
  2. Wywołaj metodę NetConnection.addEventListener(), aby wykrywać zdarzenia NetStatusEvent.
  3. W przypadku zdarzenia "NetConnection.Connect.Success" utwórz obiekt NetStream i przekaż do konstruktora obiekt NetConnection.
  4. Aby przechwytywać dźwięk i wideo, wywołaj metodę NetStream.attachAudio() i metodę NetStream.attachCamera().
  5. Aby opublikować strumień, wywołaj metodę NetStream.publish(). Publikowane dane można również rejestrować, tak aby możliwe było ich odtworzenie w późniejszym czasie.

Uwaga: Obiekt NetStream może publikować strumień lub odtwarzać strumień, ale nie może wykonywać obu tych działań. Aby opublikować strumień i odtworzyć go z serwera, należy utworzyć dwa obiekty NetStream. Za pomocą jednego obiektu NetConnection można przesłać wiele obiektów NetStream.

Serwer Flash Media Server tworzy plik podczas nagrywania strumienia. Domyślnie serwer tworzy katalog o nazwie instancji aplikacji przekazanej do metody NetConnection.connect() i zapisuje plik w tym katalogu. Na przykład poniższy kod nawiązuje połączenie z domyślną instancją aplikacji "lectureseries" i nagrywa strumień o nazwie "lecture". Plik "lecture.flv" jest zapisywany w katalogu applications/lectureseries/streams/_definst_ directory:

     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");
       }
     }
     

W poniższym przykładzie połączenie jest nawiązywane z instancją "monday" tej samej aplikacji. Plik "lecture.flv" jest zapisywany w katalogu /applications/lectureseries/streams/monday:

     var nc:NetConnection = new NetConnection();
     nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
     nc.connect("rtmp://fms.example.com/lectureseries/monday");
     
     function netStatusHandler(event:NetStatusEvent):void
     {
       if (event.info.code == "NetConnection.Connect.Success")
       {
            var ns:NetStream = new NetStream(nc);
            ns.publish("lecture", "record");
       }
     }
     

Parametry

name:String (default = null) — Ciąg znaków identyfikujący strumień. Klienci, którzy subskrybują ten strumień, przekazują tę nazwę w wywołaniu metody NetStream.play(). Nie należy umieszczać znaku lewego ukośnika „/” po nazwie strumienia. Nie można na przykład nie użyć następującej nazwy strumienia "bolero/".

Pliki można nagrywać w formatach opisanych w następującej tabeli. Nie można używać metody publish() dla plików w formacie MP3. Składnia różni się w zależności od formatu pliku.

Format plikuSkładnia Przykład
FLVOkreśl nazwę strumienia w postaci ciągu znaków bez rozszerzenia nazwy pliku.ns.publish("myflvstream");
Pliki oparte na formacie MPEG-4 (np. F4V i MP4)Określ nazwę strumienia w postaci ciągu znaków z przedrostkiem mp4: z rozszerzeniem lub bez rozszerzenia nazwy pliku. Program Flash Player używa kodowania H.263, a nie H.264, ale serwer Flash Media Server może zarejestrować dowolny kodek w kontenerze F4V. Program Flash Media Live Encoder umożliwia kodowanie za pomocą kodeka H.264. ns.publish("mp4:myvideo.f4v") ns.publish("mp4:myvideo");
RAWNazwę strumienia należy określić jako ciąg z prefiksem raw:.ns.publish("raw:myvideo");

 
type:String (default = null) — Ciąg znaków określający sposób publikowania strumienia. Poprawnymi wartościami są record, append, appendWithGap i live. Wartością domyślną jest "live".
  • Jeśli przekazany zostanie ciąg "record", serwer opublikuje i nagra dane „na żywo”, zapisując je w nowym pliku o nazwie odpowiadającej wartości przekazanej w parametrze name. Jeśli plik istnieje, zostanie zastąpiony.
  • Jeśli przekazany zostanie ciąg "append", serwer opublikuje i nagra dane „na żywo”, dopisując je do pliku o nazwie odpowiadającej wartości przekazanej w parametrze name. Jeśli plik o nazwie odpowiadającej nazwie przekazanej w parametrze name nie zostanie odnaleziony, zostanie on utworzony.
  • W przypadku przekazania parametru appendWithGap są podawane dodatkowe informacje o koordynacji czasowej, które ułatwiają serwerowi określenie poprawnego punktu przejścia w trakcie dynamicznego przesyłania strumieniowego.
  • Jeśli parametr zostanie pominięty lub przekazany zostanie ciąg "live", serwer opublikuje dane „na żywo”, nie rejestrując ich. Jeśli istnieje plik o nazwie odpowiadającej wartości przekazanej do parametru name, zostanie on usunięty.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

W poniższym przykładzie wideo jest przechwytywane z kamery i publikowane za pomocą obiektu NetStream na serwer Flash Media Server. W przykładzie wideo jest wyświetlane tak, jakby było odtwarzane z serwera Flash Media Server.

Aby uruchomić ten przykład, należy podłączyć kamerę do komputera. Należy także dodać składnik Button i Label do obiektu Library.

Aplikacja udostępnia przycisk publikujący strumień (strumień jest wysyłany na serwer Flash Media Server) tylko, gdy aplikacja pomyślnie nawiąże połączenie z serwerem. Aplikacja odtworzy strumień z serwera jedynie wtedy, gdy zostanie on pomyślnie opublikowany. Obiekt zdarzenia NetStatusEvent zwraca obiekt info z właściwością code, która określa te przypadki. Funkcja netStatusHandler obsługuje te zdarzenia dla klas NetConnection i NetStream.

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Video;
    import flash.media.Camera;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import fl.controls.Button;
    import fl.controls.Label;

    public class NetStream_publish extends Sprite {
        private var connectionURL:String = "rtmp://localhost/live/";
        private var videoURL:String = "liveVideo";
        private var nc:NetConnection;
        private var ns_publish:NetStream;
        private var ns_playback:NetStream;
        private var video_publish:Video;
        private var video_playback:Video;
        private var cam:Camera;
        private var b:Button;
        private var l:Label;

        public function NetStream_publish() {
            setUpUI();
            
            nc = new NetConnection();
            nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            
            // Add bandwidth detection handlers on the NetConnection Client to
            // prevent Reference Errors at runtime when using the "live" and "vod" applications.          
            var clientObj:Object = new Object();
            clientObj.onBWDone = onBWDone;
            clientObj.onBWCheck = onBWCheck;
            nc.client = clientObj;
            
            // Connect to the "live" application on Flash Media Server.
            nc.connect(connectionURL);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            trace(event.info.code + " | " + event.info.description);
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    // Enable the "Publish" button after the client connects to the server.
                    b.enabled = true;
                    break;
                case "NetStream.Publish.Start":
                    playbackVideo();
                    break;
            }
        }
    
        private function publishVideo(event:MouseEvent):void{
            // Disable the button so that you can only publish once.
            b.enabled = false;
            // Create a NetStream to send video to FMS.
            ns_publish = new NetStream(nc);
            ns_publish.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            // Publish (send) the video to FMS.
            cam = Camera.getCamera();
            ns_publish.attachCamera(cam);
               ns_publish.publish(videoURL);
        }

        private function playbackVideo():void {
            // Create the Video object to show the video on the stage
            video_playback = new Video(cam.width, cam.height);
            video_playback.x = cam.width + 20;
            video_playback.y = 10;
            addChild(video_playback);
            // Create a NetStream to receive the video from FMS.
            ns_playback = new NetStream(nc);
            ns_playback.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            // Display the video that was published to FMS.
                  video_playback.attachNetStream(ns_playback);
            ns_playback.play(videoURL); 
        }
        
        
        private function setUpUI():void { 
      b = new Button(); 
      b.addEventListener(MouseEvent.CLICK, publishVideo);
      b.width = 150;
            b.label = "Publish video to server";
            b.move(10, 150);
            b.enabled = false;
            
            l = new Label();
            l.width = 150;
            l.text = "Playing back from server"
            l.move(190, 150);
            
            addChild(b);
            addChild(l);
        }
        
        // Handlers called by the Flash Media Server "live" and "vod" applications.
        public function onBWDone(... rest):Boolean {
            return true;
        }
        
        public function onBWCheck(... rest):Number {
            return 0;
        }
    }
}

receiveAudio

()metoda 
public function receiveAudio(flag:Boolean):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa, czy są odtwarzane przychodzące dane dźwiękowe. Ta metoda jest dostępna tylko dla klientów mających subskrypcję określonego strumienia. Nie jest dostępna dla wydawcy strumienia. Wywołanie tej metody musi nastąpić przed wywołaniem metody NetStream.play() lub po jej wywołaniu. Tę metodę można na przykład dołączyć do przycisku, aby umożliwić użytkownikom wyciszanie i włączanie dźwięku. Tej metody należy używać tylko w przypadku strumieni w emisji pojedynczej odtwarzanych z serwera Flash Media Server. Ta metoda nie działa w przypadku strumieni emisji wielokrotnej RTMFP ani w przypadku używania metody NetStream.appendBytes().

Parametry

flag:Boolean — Określa, czy dane wejściowe audio są odtwarzane w strumieniu (wartość true), czy nie (wartość false). Wartością domyślną jest true. Jeśli określony strumień zawiera tylko dane dźwiękowe, wartość NetStream.time przestaje być zwiększana w momencie przekazania wartości false.

receiveVideo

()metoda 
public function receiveVideo(flag:Boolean):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa, czy w strumieniu jest odtwarzane przychodzące wideo. Ta metoda jest dostępna tylko dla klientów mających subskrypcję określonego strumienia. Nie jest dostępna dla wydawcy strumienia. Wywołanie tej metody musi nastąpić przed wywołaniem metody NetStream.play() lub po jej wywołaniu. Tę metodę można na przykład dołączyć do przycisku, aby umożliwić użytkownikom wyświetlanie i ukrywanie wideo. Tej metody należy używać tylko w przypadku strumieni w emisji pojedynczej odtwarzanych z serwera Flash Media Server. Ta metoda nie działa w przypadku strumieni emisji wielokrotnej RTMFP ani w przypadku używania metody NetStream.appendBytes().

Parametry

flag:Boolean — Określa, czy dane wejściowe wideo są odtwarzane w tym strumieniu (wartość true) czy nie (wartość false). Wartością domyślną jest true. Jeśli określony strumień zawiera tylko dane wideo, wartość NetStream.time przestaje być zwiększana w momencie przekazania wartości false.

receiveVideoFPS

()metoda 
public function receiveVideoFPS(FPS:Number):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Określa szybkość odtwarzania dla danych wejściowych wideo. Ta metoda jest dostępna tylko dla klientów mających subskrypcję określonego strumienia. Nie jest dostępna dla wydawcy strumienia. Wywołanie tej metody musi nastąpić przed wywołaniem metody NetStream.play() lub po jej wywołaniu. Tę metodę można na przykład wywołać w celu umożliwienia użytkownikom ustawienia szybkości odtwarzania wideo. Aby określić bieżącą szybkość odtwarzania, należy użyć właściwości NetStream.currentFPS. Aby przestać odbierać wideo, należy przekazać wartość 0.

Jeśli do parametru FPS zostanie przekazana wartość w celu ograniczenia szybkość odtwarzania wideo, serwer Flash Media Server będzie usiłował zmniejszyć tę szybkość przy zachowaniu integralności danych wideo. Między każdymi dwiema klatkami kluczowymi serwer wysyła minimalną liczbę klatek wymaganą do uzyskania żądanej szybkości. Klatki pośrednie muszą być wysyłane w trybie ciągłym, gdyż w przeciwnym razie nastąpi uszkodzenie wideo. Dlatego pożądana liczba klatek wysyłana jest w sposób ciągły natychmiast po klatce kluczowej. Ponieważ klatki nie są równomiernie rozłożone, ruch jest wyświetlany płynnie w segmentach między „zacięciami”.

Tej metody należy używać tylko w przypadku strumieni w emisji pojedynczej odtwarzanych z serwera Flash Media Server. Ta metoda nie działa w przypadku strumieni emisji wielokrotnej RTMFP ani w przypadku używania metody NetStream.appendBytes().

Parametry

FPS:Number — Określa szybkość odtwarzania (liczbę klatek na sekundę) dla danych wejściowych wideo.

resetDRMVouchers

()metoda 
public static function resetDRMVouchers():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 11.8, Flash Lite 4

W aplikacjach AIR powoduje to usunięcie wszystkich buforowanych lokalnie danych kuponów zarządzania prawami cyfrowymi (DRM). W przypadku aplikacji działających w przeglądarkach ta funkcja jest dostępna tylko w kontekście błędów 3322 i działa analogicznie do panelu ustawień odtwarzania zawartości chronionej.

Aplikacja musi ponownie pobrać wszelkie wymagane kupony z serwera uprawnień, aby użytkownik miał dostęp do chronionej treści. Wywołanie tej funkcji jest równoważne wywołaniu funkcji resetDRMVouchers() obiektu DRMManager.


Zgłasza
IOError — Danych kuponów nie można usunąć.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy przykład ilustruje zresetowanie wszystkich kuponów DRM:
NetStream.resetDRMVouchers();

resume

()metoda 
public function resume():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wznawia odtwarzanie wstrzymanego strumienia wideo. Jeśli wideo jest w danym momencie odtwarzane, wywołanie tej metody niczym nie skutkuje.

Powiązane elementy interfejsu API

seek

()metoda 
public function seek(offset:Number):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wyszukuje klatkę kluczową (w branży filmowej nazywanej również) najbliższą dla określonego położenia. Klatka kluczowa jest umieszczana w miejscu wskazywanym przez wartość przesunięcia (w sekundach) licząc od początku strumienia.

Strumienie wideo są zazwyczaj kodowane z użyciem dwóch typów klatek, kluczowych (I-klatek) oraz P-klatek. Klatki kluczowe zawierają całe obrazy podczas, gdy P-klatki są klatkami tymczasowymi, które dostarczają dodatkowych informacji między kolejnymi klatkami kluczowymi. Strumień wideo zazwyczaj posiada klatkę kluczową co 10–50 klatek.

Serwer Flash Media Server oferuje kilka mechanizmów wyszukiwania: udoskonalone wyszukiwanie i inteligentne wyszukiwanie.

Udoskonalone wyszukiwanie

Udoskonalone wyszukiwanie jest domyślnie włączone. Aby wyłączyć udoskonalone wyszukiwanie, należy w pliku konfiguracyjnym Application.xml na serwerze Flash Media Server ustawić element EnhancedSeek na false.

Jeśli udoskonalone wyszukiwanie jest włączone, serwer wygeneruje w punkcie określonym przez parametr offset nową klatkę kluczową w oparciu o poprzednią klatkę kluczową i wszystkie pośrednie P-klatki. Jednak generowanie klatek kluczowych znacząco obciąża serwer i może spowodować zniekształcenie w generowanej klatce. Jeśli kodekiem wideo jest On2, do klienta wysyłana jest klatka kluczowa znajdująca się przed punktem wyszukiwania i wszystkie P-klatki pomiędzy klatką kluczową i punktem wyszukiwania.

Jeśli udoskonalone wyszukiwanie jest wyłączone, serwer rozpoczyna przesyłanie strumieniowe od najbliższej klatki kluczowej. Załóżmy na przykład, że w klipie wideo klatki kluczowe znajdują się na pozycjach 0 sekund i 10 sekund. Przejście (wyszukanie) do punktu 4 sekund powoduje rozpoczęcie odtwarzania od 4. sekundy przy wykorzystaniu klatki kluczowej na pozycji 0 sekund. Wideo zostanie „zamrożone” do momentu, aż osiągnie kolejną klatkę kluczową w 10. sekundzie. Aby uzyskać lepsze wyniki wyszukiwania, należy zmniejszyć interwał klatek kluczowych. W normalnym trybie wyszukiwania nie ma możliwości rozpoczęcia odtwarzania wideo w punkcie pomiędzy klatkami kluczowymi.

Inteligentne wyszukiwanie

Aby włączyć inteligentne wyszukiwanie, należy przypisać właściwości NetStream.inBufferSeek wartość true.

Funkcja inteligentnego wyszukiwania umożliwia programowi Flash Player wyszukiwanie w istniejącym buforze odtwarzania do tyłu i buforze odtwarzania do przodu. Gdy inteligentne wyszukiwanie jest wyłączone, każde wywołanie metody seek() powoduje, że program Flash Player opróżnia bufor i żąda danych z serwera. Więcej informacji zawiera opis właściwości NetStream.inBufferSeek.

Wyszukiwanie w trybie generowania danych

Wywołanie metody seek() obiektu NetStream w trybie generowania danych powoduje, że od tej pory wszystkie bajty przekazywane do metody appendBytes() będą odrzucane (nie będą umieszczane w buforze, gromadzone w kolejce FIFO komunikatów częściowych ani analizowane w poszukiwaniu punktów wyszukiwania), aż do wywołania appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN lub appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK) w celu zresetowania analizatora. Informacje na temat trybu generowania danych zawiera opis metody NetStream.play().

Parametry

offset:Number — Przybliżona wartość czasu (w sekundach) dla przesunięcia w pliku wideo. Jeśli element <EnhancedSeek> ma w pliku konfiguracyjnym Application.xml wartość true (jest to ustawienie domyślne), serwer tworzy klatkę kluczową przesuniętą o wartość parametru offset. (Dotyczy serwera Flash Media Server).
  • Aby powrócić do początku strumienia, należy do parametru offset przekazać wartość 0.
  • Aby wyszukiwać do przodu, rozpoczynając od początku strumienia, należy przekazać liczbę sekund określającą postęp wyszukiwania. Na przykład, aby umieścić głowicę odtwarzania na 15. sekundzie od początku strumienia (lub klatce kluczowej przed 15. sekundą), należy użyć wywołania myStream.seek(15).
  • Aby wyszukiwać względem bieżącej pozycji, należy przekazać NetStream.time + n lub NetStream.time - n do wyszukania n sekund w przód lub wstecz. Na przykład, aby przewinąć wstecz o 20 sekund od bieżącej pozycji, należy użyć wywołania NetStream.seek(NetStream.time - 20).

Powiązane elementy interfejsu API

send

()metoda 
public function send(handlerName:String, ... arguments):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9

Wysyła do wszystkich subskrybentów komunikat za pomocą opublikowanego strumienia. Ta metoda jest dostępna jedynie dla wydawcy określonego strumienia. Ta metoda jest dostępna tylko w przypadku współpracy z serwerem Flash Media Server. Aby przetworzyć i wygenerować odpowiedź dla tego komunikatu, należy utworzyć moduł obsługi dla obiektu NetStream, np. ns.HandlerName.

W programie Flash Player lub środowisku AIR metody i ich dane, zmienne prototypów obiektów czy zmienne nienumeryczne nie są serializowane. Dla obiektów wyświetlanych program Flash Player lub środowisko AIR serializuje ścieżki, ale nie dane.

Aby dodać klatki kluczowe z danymi do strumienia publikowanego „na żywo” na serwer Flash Media Server, należy wywołać metodę send(). Klatka kluczowa danych jest komunikatem, który wydawca dodaje do strumienia „na żywo”. Klatki kluczowe danych są zazwyczaj używane do dodawania metadanych do strumienia „na żywo” przed przechwyceniem danych dla strumienie kamery i mikrofonu. Wydawca może dodać klatki kluczowe danych w dowolnym momencie w czasie publikowania strumienia „na żywo”. Klatka kluczowa danych pozostaje zapisana w pamięci serwera tak długo, jak długo wydawca jest połączony z serwerem.

Przed dodaniem klatki kluczowej danych klienci subskrybujący strumień „na żywo” otrzymają klatkę kluczową zaraz po jej dodaniu. Po dodaniu klatki kluczowej danych klienci subskrybujący strumień „na żywo” otrzymają klatkę w momencie dokonania subskrypcji.

Aby dodać klatkę kluczową metadanych do strumienia „na żywo” przesłanego na serwer Flash Media Server, należy jako nazwy użyć argumentu @setDataFrame, poprzedzając nim dwa dodatkowe argumenty, np.:

     var ns:NetStream = new NetStream(nc);
     ns.send("@setDataFrame", "onMetaData", metaData);
     

Argument @setDataFrame odnosi się do specjalnego modułu obsługi wbudowanego w serwer Flash Media Server. Argument onMetaData jest nazwą funkcji wywołania zwrotnego w aplikacji klienckiej użytkownika, która wykrywa zdarzenia onMetaData i pobiera metadane. Trzeci element, metaData, jest instancją Object lub Array z właściwościami, które definiują wartości metadanych.

Argumentu @clearDataFrame należy używać do usuwania klatek kluczowych metadanych, które zostały już ustawione w strumieniu:

     ns.send("@clearDataFrame", "onMetaData");
     

Parametry

handlerName:String — Komunikat do wysłania; także nazwa modułu obsługi języka ActionScript do odbierania komunikatów. Nazwa modułu obsługi może być jedynie na pierwszym poziomie zagłębienia (oznacza to, że nie może mieć formatu element nadrzędny / element podrzędny) i pozostaje względna wobec obiektu strumieniowania. Nie należy używać wyrazów zastrzeżonych dla nazwy modułu obsługi. Na przykład użycie „close” jako nazwy modułu obsługi powoduje niepowodzenie wykonania metody. Aby dodać do strumienia „na żywo” klatkę kluczową metadanych, korzystając z serwera Flash Media Server, należy użyć argumentu @setDataFrame lub argumentu @clearDataFrame, aby usunąć klatkę kluczową.
 
... arguments — Opcjonalne argumenty mogą być dowolnego typu. Są serializowane i wysyłane za pomocą połączenia, a odbierający moduł obsługi otrzymuje je w tej samej kolejności. Jeśli parametr jest obiektem cyklicznym (np. powiązana lista cykliczna), obiekt serializujący obsługuje odwołania poprawnie. Korzystając z serwera Flash Media Server, jeśli @setDataFrame jest pierwszym argumentem, jako drugiego należy użyć onMetaData; dla trzeciego argumentu należy przekazać instancję Object lub Array, która posiada metadane ustawione we właściwościach. Listę sugerowanych nazw właściwości zawiera podręcznik Flash Media Server Developer Guide. Jeśli @clearDataFrame jest pierwszym argumentem, należy użyć onMetaData jako drugiego argumentu i nie używać trzeciego.

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy przykład ilustruje tworzenie dwóch obiektów NetStream. Jeden używany jest do publikowania strumienia „na żywo”, natomiast drugi subskrybuje strumień.
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);
    }
 }

Poniższy przykład ilustruje tworzenie metadanych i ich dodawanie do strumienia „na żywo”:
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() );        
    }
}

Aby wygenerować odpowiedź na dodanie klatki kluczowej danych do wideo, od klienta wymagane jest zdefiniowanie modułu obsługi zdarzeń onMetaData. Moduł obsługi zdarzeń onMetaData nie jest zarejestrowany w metodzie addEventListener(), ale w zamian jest funkcją wywołania zwrotnego o nazwie onMetaData, na przykład:
 public function onMetaData(info:Object):void {
    trace("width: " + info.width);
    trace("height: " + info.height);
 }

Ten przykład ilustruje tworzenie na serwerze listy odtwarzania:
 // 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);

Jeśli nagrany plik wideo zawiera tylko komunikaty danych, plik można odtwarzać z prędkością z jaką został pierwotnie nagrany lub pobrać za jednym razem wszystkie komunikaty danych.
 //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

()metoda 
public function setDRMAuthenticationCredentials(userName:String, password:String, type:String):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Lite 4

Ustawia poświadczenia uwierzytelniania DRM niezbędne do wyświetlania skojarzonej zaszyfrowanej zawartości.

Metoda setDRMAuthenticationCredentials() musi udostępniać poświadczenia znane dostawcy treści lub serwerowi proxy i akceptowane przez dostawcę lub serwer. Są to te same poświadczenia, z których użytkownik korzysta w celu uzyskania zezwolenia na wyświetlenie treści.

Parametry

userName:String — Poprawna nazwa użytkownika.
 
password:String — Hasło odpowiadające podanej nazwie użytkownika.
 
type:String — Ciąg znaków określający typ podanych poświadczeń uwierzytelniania. Poprawne wartości to "drm" i "proxy". Wartością domyślną jest "drm".
  • W przypadku typu uwierzytelniania "drm" podane poświadczenia są uwierzytelniane w module Flash Access.
  • W przypadku uwierzytelniania typu "proxy" podane poświadczenia są uwierzytelniane na serwerze proxy i muszą być zgodne z wymaganymi przez ten serwer. Na przykład opcja proxy umożliwia aplikacji uwierzytelnienie na serwerze proxy, jeśli w danym przedsiębiorstwie jest to wymagane, zanim użytkownik uzyska dostęp do Internetu. O ile tylko nie jest stosowane uwierzytelnianie anonimowe, po uwierzytelnieniu na serwerze proxy użytkownik i tak musi uwierzytelnić się w module Flash Access w celu uzyskania kuponu i odtworzenia treści. Można po raz drugi użyć metody setDRMAuthenticationcredentials(), tym razem z opcją "drm", w celu uwierzytelnienia w module Flash Access.

Powiązane elementy interfejsu API

step

()metoda 
public function step(frames:int):void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2

Powoduje przejście naprzód lub wstecz o określoną liczbę klatek względem obecnie wyświetlanej klatki. Podanie liczby dodatniej powoduje przejście w przód, a liczby ujemnej — przejście wstecz. Wywołaj tę metodę, aby utworzyć funkcje dokładnego szybkiego przewijania do przodu lub do tyłu.

Uwaga: ta metoda nie jest obsługiwana w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Ta metoda jest dostępna tylko podczas strumieniowego przesyłania danych z serwera Flash Media Server 3.5.3 lub nowszej wersji oraz gdy właściwość NetStream.inBufferSeek ma wartość true. Klatka docelowa również musi znajdować się w buforze. Na przykład, jeśli obecnie wyświetlana jest klatka numer 120 i zostanie podana wartość 1000, wykonanie metody nie powiedzie się, gdy klatka numer 1120 nie będzie dostępna w buforze.

Ta metoda jest przeznaczona do użycia z metodami pause() lub togglePause(). Jeśli podczas odtwarzania użytkownik przesunie głowicę o 10 klatek do przodu lub do tyłu bez wstrzymywania odtwarzania, wówczas ten skok nie zostanie zauważony lub będzie wyglądał jak chwilowe zakłócenie. Dźwięk zostanie wytłumiony również po wywołaniu metody pause() lub togglePause.

Jeśli wywołanie metody NetStream.step() zakończy się powodzeniem, wysłane zostanie zdarzenie NetStatusEvent z wartością code obiektu informacyjnego równą "NetStream.Step.Notify".

Parametry

frames:int

Powiązane elementy interfejsu API

togglePause

()metoda 
public function togglePause():void

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wstrzymuje lub wznawia odtwarzanie strumienia. Pierwsze wywołanie tej metody wstrzymuje odtwarzanie; kolejne jej wywołanie wznawia odtwarzanie. Z tej metody można korzystać, aby umożliwić użytkownikom wstrzymywanie i wznawianie odtwarzania za pomocą pojedynczego przycisku.

Powiązane elementy interfejsu API

Szczegół zdarzenia

asyncError

Zdarzenie
Typ obiektu zdarzenia: flash.events.AsyncErrorEvent
właściwość AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wywoływana w przypadku asynchronicznego zgłoszenia wyjątku — pochodzącego z macierzystego kodu asynchronicznego. To zdarzenie wywoływane jest, gdy serwer wywołuje metodę na komputerze klienckim, który nie został zdefiniowany.

Stała AsyncErrorEvent.ASYNC_ERROR definiuje wartość właściwości type obiektu zdarzenia asyncError.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
targetObiekt wywołujący zdarzenie
errorBłąd, który spowodował wywołanie zdarzenia.

Powiązane elementy interfejsu API

drmAuthenticate

Zdarzenie  
Typ obiektu zdarzenia: flash.events.DRMAuthenticateEvent
właściwość DRMAuthenticateEvent.type = flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Lite 4

Wywoływane, gdy obiekt NetStream próbuje odtwarzać zawartość zaszyfrowaną przy użyciu mechanizmu DRM, która wymaga poświadczeń użytkownika do uwierzytelnienia przed rozpoczęciem odtwarzania.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Do uwierzytelnienia użytkownika należy użyć metody setDRMAuthenticationCredentials() obiektu NetStream. Jeśli uwierzytelnienie użytkownika nie powiedzie się, aplikacja ponowi próbę uwierzytelnienia i wywoła nowe zdarzenie DRMAuthenticateEvent dla obiektu NetStream.

Stała DRMAuthenticateEvent.DRM_AUTHENTICATE definiuje wartość właściwości type obiektu zdarzenia DRMAuthenticateEvent.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
authenticationTypeOkreśla, czy podane poświadczenia służą do uwierzytelniania na serwerze FMRMS (Flash Media Rights Management Server), czy na serwerze proxy.
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
headerNagłówek pliku z zaszyfrowaną treścią udostępniony przez serwer.
netstreamObiekt NetStream, który zainicjował zdarzenie.
passwordPromptMonit o hasło udostępniony przez serwer.
targetObiekt NetStream.
urlPromptMonit o adres URL do wyświetlenia, udostępniony przez serwer.
usernamePromptMonit o nazwę użytkownika udostępniony przez serwer.

Powiązane elementy interfejsu API

drmError

Zdarzenie  
Typ obiektu zdarzenia: flash.events.DRMErrorEvent
właściwość DRMErrorEvent.type = flash.events.DRMErrorEvent.DRM_ERROR

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 10.1, Flash Lite 4

Wywoływane, gdy obiekt NetStream próbujący odtwarzać plik zaszyfrowany za pomocą mechanizmu DRM napotka błąd związany z mechanizmem DRM. Obiekt zdarzenia DRMErrorEvent jest wywoływany na przykład w razie niepowodzenia uwierzytelnienia użytkownika. Takie niepowodzenie może wynikać z faktu, że użytkownik nie zakupił praw do wyświetlania treści lub z tego, że dostawca treści nie obsługuje danej aplikacji przeznaczonej do wyświetlania.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Stała DRMErrorEvent.DRM_ERROR definiuje wartość właściwości type obiektu zdarzenia drmError.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
errorIDLiczbowy kod błędu przypisany do problemu.
subErrorIDKod błędu określający bardziej szczegółowe informacje na temat problemu będącego przyczyną błędu.
targetObiekt NetStream.

Powiązane elementy interfejsu API

drmStatus

Zdarzenie  
Typ obiektu zdarzenia: flash.events.DRMStatusEvent
właściwość DRMStatusEvent.type = flash.events.DRMStatusEvent.DRM_STATUS

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 10.1, Flash Lite 4

Wywoływane, gdy rozpoczyna się odtwarzanie treści zabezpieczonej przy użyciu mechanizmu DRM (tj. gdy użytkownik zostanie uwierzytelniony i uzyska uprawnienia do odtwarzania treści).

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Obiekt DRMStatusEvent zawiera informacje związane z kuponem, np. o tym, czy treść jest dostępna w trybie offline i jaki jest termin ważności kuponu, po upływie którego użytkownicy nie mogą już wyświetlać treści.

Stała DRMStatusEvent.DRM_STATUS definiuje wartość właściwości type obiektu zdarzenia drmStatus.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
detailCiąg objaśniający kontekst zdarzenia dotyczącego stanu.
isAnonymousOkreśla, czy treść chroniona szyfrowaniem DRM jest dostępna bez konieczności podawania przez użytkownika poświadczeń uwierzytelniania.
isAvailableOfflineOkreśla, czy treść chroniona szyfrowaniem DRM jest dostępna w trybie offline.
offlineLeasePeriodPozostały czas (liczba dni), przez jaki zawartość może być jeszcze wyświetlana w trybie offline.
policiesNiestandardowy obiekt zdarzenia dotyczącego stanu DRM.
targetObiekt NetStream.
voucherEndDateData bezwzględna wygaśnięcia kuponu, po której użytkownicy nie będą już mogli wyświetlać treści.
contentDataObiekt DRMContentData dla treści.
voucherObiekt DRMVoucher dla treści.
isLocalOkreśla, czy treść jest przechowywana w lokalnym systemie plików

Powiązane elementy interfejsu API

ioError

Zdarzenie  
Typ obiektu zdarzenia: flash.events.IOErrorEvent
właściwość IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wywoływana, gdy wystąpi błąd wejścia lub wyjścia uniemożliwiający operację sieciową.

Definiuje wartość właściwości type obiektu zdarzenia ioError.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
errorIDNumer referencyjny skojarzony z konkretnym błędem (tylko w środowisku AIR).
targetObiekt sieciowy, w którym wystąpił błąd wejścia/wyjścia.
textTekst, który ma być wyświetlany w charakterze komunikatu o błędzie.

mediaTypeData

Zdarzenie  
Typ obiektu zdarzenia: flash.events.NetDataEvent
właściwość NetDataEvent.type = flash.events.NetDataEvent

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.3, AIR 2.7

Wywoływane w przypadku przetworzenia komunikatów pewnego typu podczas odtwarzania zawartości wideo.

Obiekt NetDataEvent jest wywoływany w przypadku następujących komunikatów:

  • onCuePoint
  • onImageData
  • onMetaData
  • onPlayStatus (dla kodu NetStream.Play.Complete)
  • onTextData
  • onXMPData

Uwaga: To zdarzenie nie jest wywoływane przez zawartość uruchomioną w programie Flash Player w przeglądarce systemu Android lub BlackBerry Tablet OS ani przez zawartość uruchomioną w środowisku AIR w systemie iOS.

netStatus

Zdarzenie  
Typ obiektu zdarzenia: flash.events.NetStatusEvent
właściwość NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Wywoływana, gdy obiekt NetStream zgłasza swój stan lub warunek błędu. Zdarzenie netStatus zawiera właściwość info, która jest obiektem informacji zawierającym informacje charakterystyczne dla zdarzenia np. czy próba połączenia zakończona została pomyślnie, czy niepowodzeniem.

Definiuje wartość właściwości type obiektu zdarzenia netStatus.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
infoObiekt z właściwościami opisującymi stan obiektu lub warunek błędu.
targetObiekt NetConnection lub NetStream informujący o swoim stanie.

Powiązane elementy interfejsu API

onCuePoint

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Tworzy detektor, którego zadaniem jest generowanie odpowiedzi w momencie osiągnięcia punktu sygnalizacji w czasie odtwarzania pliku wideo. Detektora można używać w kodzie, aby wywołać operacje, gdy wideo osiągnie określony punkt sygnalizacji. Pozwala to na synchronizację pozostałych operacji w aplikacji użytkownika za pomocą zdarzeń odtwarzania wideo. Informacje na temat formatów plików wideo obsługiwanych przez serwer Flash Media Server można znaleźć pod adresem www.adobe.com/go/learn_fms_fileformats_pl.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Zdarzenie onCuePoint jest w rzeczywistości właściwością obiektuNetStream.client. Ta właściwość znajduje się na liście w sekcji Zdarzenia, ponieważ odpowiada na zdarzenia danych, zarówno w mediach strumieniowanych za pomocą serwera Flash Media Server, jak i podczas odtwarzania plików FLV. Więcej informacji na ten temat zawiera opis klasy NetStream. Nie można używać metody addEventListener(), ani żadnej innej metody klasy EventDispatcher, aby wykrywać lub przetwarzać właściwość onCuePoint jako zdarzenie. Należy zdefiniować funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Należy utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do instancji podklasy.

Skojarzony detektor zdarzeń uruchamiany jest po wywołaniu metody NetStream.play(), jednak przed przesunięciem głowicy odtwarzania.

W pliku wideo można osadzać różnego typu punkty sygnalizacji:

  • Punkt sygnalizacji nawigacji określa klatkę kluczową w pliku wideo oraz właściwość time punktu sygnalizacji w odniesieniu do tej klatki. Punkty sygnalizacji nawigacji są często używane jako zakładki lub punkty wejścia, aby umożliwić użytkownikom nawigację w pliku wideo.
  • Punkt sygnalizacji zdarzenia określa czas. Czas może, ale nie musi bezpośrednio odpowiadać konkretnej klatce. Punkt sygnalizacji zdarzenia zazwyczaj reprezentuje w wideo czas, w którym wystąpiły pewne działania i których można użyć w celu wywołania zdarzeń innych aplikacji.

Obiekt zdarzenia onCuePoint ma następujące właściwości:

WłaściwośćOpis
nameNazwa punktu sygnalizacji nadana w czasie jego osadzania w pliku wideo.
parametersTablica asocjacyjna ciągów znaków par nazwa/wartość określonych dla tego punktu sygnalizacji. Wszystkie poprawne ciągi znaków mogą być używane jako nazwa parametru lub jego wartość.
timeCzas (liczba sekund), w jakim pojawi się podczas odtwarzania pliku wideo punkt sygnalizacji.
typeTyp punktu sygnalizacji, który został osiągnięty, nawigacji lub zdarzenia.

Punkty sygnalizacji można definiować w pliku wideo podczas pierwszego kodowania pliku lub w czasie importowania klipu wideo w narzędziu Flash za pomocą kreatora Import wideo.

Zdarzenie onMetaData pobiera z pliku wideo także informacje na temat punktów sygnalizacji. Jednak zdarzenie onMetaData pobiera informacje na temat wszystkich punktów sygnalizacji przed rozpoczęciem odtwarzania wideo. Zdarzenie onCuePoint odbiera podczas odtwarzania informacje o pojedynczym punkcie sygnalizacji w czasie określonym dla tego punktu.

Zwykle, aby w kodzie użytkownika nastąpiło wykrycie określonego punktu sygnalizacji, w momencie jego pojawienia się, należy użyć zdarzenia onCuePoint w celu wykonania pewnego działania w kodzie.

Istnieje możliwość użycia listy punktów sygnalizacji dostarczonej do zdarzenia onMetaData, aby umożliwić użytkownikowi rozpoczynanie odtwarzania wideo w predefiniowanych punktach strumienia. Aby odtworzyć wideo z określonego punktu sygnalizacji, należy przekazać wartość jego właściwości time do metody NetStream.seek().


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy przykład ilustruje ładowanie zewnętrznych plików FLV oraz reagowanie na zawartość metadanych oraz punkty sygnalizacji. Przykład pochodzi z witryny ActionScriptExamples.com.
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);
}

Powiązane elementy interfejsu API

onDRMContentData

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.5, Flash Lite 4

Definiuje detektor reagujący na wyodrębnienie przez środowisko AIR metadanych treści DRM osadzonych w pliku multimedialnym.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Obiekt DRMContentData zawiera informacje potrzebne do uzyskania kuponu niezbędnego do odtwarzania pliku multimedialnego chronionego przy użyciu mechanizmu DRM. W celu pobrania kuponu z tymi informacjami należy użyć klasy DRMManager.

onDRMContentData jest właściwością obiektu NetStream.client. Właściwość ta została wymieniona w sekcji Zdarzenia, ponieważ reaguje na zdarzenie data podczas wstępnego ładowania osadzonych danych z lokalnego pliku multimedialnego. Więcej informacji na ten temat zawiera opis klasy NetStream. Nie można używać metody addEventListener(), ani żadnej innej metody EventDispatcher, aby wykrywać lub przetwarzać właściwość onDRMContentData jako zdarzenie. Należy raczej zdefiniować pojedynczą funkcję wywołania zwrotnego i dołączyć ją bezpośrednio do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Można jednak utworzyć podklasę NetStream i zdefiniować własny moduł obsługi zdarzeń w podklasie lub uczynić ją dynamiczną i dodać do instancji podklasy funkcję modułu obsługi zdarzeń.

Powiązane elementy interfejsu API

onImageData

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4

Tworzy detektor w celu odpowiedzi na odebranie przez program Flash Player danych obrazu jako tablicy bajtów osadzonych w odtwarzanym pliku multimedialnym. Z danych obrazu można utworzyć treść JPEG, PNG lub GIF. Aby załadować tablicę bajtów do obiektu wyświetlanego, należy użyć metody flash.display.Loader.loadBytes().

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Zdarzenie onImageData jest w rzeczywistości właściwością obiektu NetStream.client. Ta właściwość znajduje się na liście w sekcji Zdarzenia, ponieważ reaguje na zdarzenia dotyczące danych — zarówno w danych przesyłanych strumieniowo za pomocą serwera Flash Media Server, jak i podczas odtwarzania plików FLV. Aby uzyskać więcej informacji na ten temat, należy zapoznać się z opisem klasy NetStream. Nie można używać metody addEventListener(), ani żadnej innej metody EventDispatcher, aby wykrywać lub przetwarzać onImageData jako zdarzenia. Należy zdefiniować jedną funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Należy utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do instancji podklasy.

Skojarzony detektor zdarzeń uruchamiany jest po wywołaniu metody NetStream.play(), jednak przed przesunięciem głowicy odtwarzania.

Obiekt zdarzenia onImageData zawiera dane obrazu w postaci tablicy bajtów wysłanej za pomocą kanału danych AMF0.


Przykład  ( Sposób korzystania z tego przykładu )

W kodzie tego przykładu używana jest właściwość Netstream.client, która obsługuje funkcje wywołania zwrotnego dla zdarzeń onTextData i onImageData. Funkcja onImageDataHandler() używa obiektu zdarzenia onImageData imageData, aby przechować tablicę bajtów. Natomiast funkcja onTextDataHandler() używa obiektu zdarzenia onTextData textData, aby przechować fragmenty danych tekstu (każdy fragment danych jest właściwością obiektu textData).

W kodzie należy zastąpić rzeczywistą lokalizację pliku multimedialnego tekstem lub metadanymi obrazu dla lokalizacji "yourURL".

Obraz i tekst można również obsługiwać za pomocą niestandardowej klasy. Aby uzyskać więcej informacji i przykładów, należy zapoznać się z artykułem Obsługa metadanych oraz punktów podpowiedzi w plikach wideo Flash.

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]);
                }
            }

        }

}

Powiązane elementy interfejsu API

onMetaData

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Tworzy detektor w celu odpowiedzi na odebranie przez program Flash Player informacji opisowych osadzonych w odtwarzanym w danym momencie pliku wideo. Informacje na temat formatów plików wideo obsługiwanych przez serwer Flash Media Server można znaleźć pod adresem www.adobe.com/go/learn_fms_fileformats_pl.

onMetaDataZdarzenie jest w rzeczywistości właściwością obiektu NetStream.client. Ta właściwość znajduje się na liście w sekcji Zdarzenia, ponieważ reaguje na zdarzenia danych, zarówno w mediach strumieniowanych za pomocą serwera Flash Media Server, jak i podczas odtwarzania plików FLV. Więcej informacji zawiera opis klasy NetStream oraz właściwości NetStream.client. Nie można używać metody addEventListener(), ani żadnej innej metody EventDispatcher, aby wykrywać lub przetwarzać onMetaData jako zdarzenia. Należy zdefiniować jedną funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Można utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do wystąpienia tej podklasy.

Narzędzia programu Flash Video Exporter (w wersji 1.1 lub nowszej) umożliwiają samoczynne osadzanie czasu trwania wideo, daty utworzenia, szybkości danych i pozostałych informacji w pliku wideo. Różne kodeki wideo powodują osadzenie różnych zestawów metadanych.

Skojarzony detektor zdarzeń uruchamiany jest po wywołaniu metody NetStream.play(), jednak przed przesunięciem głowicy odtwarzania.

W wielu przypadkach wartość czasu trwania osadzona w metadanych strumienia przybliża rzeczywisty czas trwania, jednak nie jest dokładna. Innymi słowy nie zawsze jest zgodna z właściwością NetStream.time, gdy głowica odtwarzania znajduje się na końcu strumienia wideo.

Obiekt zdarzenia przekazany do modułu obsługi zdarzeń onMetaData zawiera jedną właściwość dla każdego fragmentu danych.


Przykład  ( Sposób korzystania z tego przykładu )

Poniższy przykład ilustruje ładowanie zewnętrznych plików FLV oraz reagowanie na zawartość metadanych oraz punkty sygnalizacji. Przykład pochodzi z witryny ActionScriptExamples.com.
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);
}

Powiązane elementy interfejsu API

onPlayStatus

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9, Flash Lite 4

Tworzy detektor, którego zadaniem jest generowanie odpowiedzi na zakończenie odtwarzania strumienia przez obiekt NetStream. Skojarzony obiekt zdarzenia zapewnia również informacje jako uzupełnienie wartości zwracanych przez zdarzenie netStatus. Tej właściwości można użyć w kodzie w celu uruchomienia operacji, gdy obiekt NetStream jest przełączany pomiędzy strumieniami na liście odtwarzania (tak jak wskazuje obiekt informacji NetStream.Play.Switch) lub gdy obiekt NetStream został odtworzony do końca (tak jak wskazuje obiekt informacji NetStream.Play.Complete).

Zdarzenie onPlayStaus jest w rzeczywistości właściwością obiektu NetStream.client. Ta właściwość znajduje się na liście w sekcji Zdarzenia, ponieważ reaguje na zdarzenia dotyczące danych — zarówno w danych przesyłanych strumieniowo za pomocą serwera Flash Media Server, jak i podczas odtwarzania plików FLV. Aby uzyskać więcej informacji na ten temat, należy zapoznać się z opisem klasy NetStream. Nie można używać metody addEventListener(), ani żadnej innej metody klasy EventDispatcher, aby wykrywać lub przetwarzać właściwość onPlayStatus jako zdarzenie. Należy zdefiniować funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Należy utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do instancji podklasy.

To zdarzenie może zwrócić obiekt informacji z poniższymi właściwościami:

Właściwość codeWłaściwość levelZnaczenie
NetStream.Play.Switch"status"Subskrybent jest przełączany pomiędzy strumieniami na liście odtwarzania.
NetStream.Play.Complete"status"Odtwarzanie zostało zakończone.
NetStream.Play.TransitionComplete"status"Subskrybent jest przełączany pomiędzy strumieniami na liście odtwarzania w wyniku przełączania prędkości bitowej strumienia

Powiązane elementy interfejsu API

onSeekPoint

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 2, Flash Lite 4

Wywoływana synchronicznie z metody appendBytes(), gdy analizator dołączonych bajtów napotka punkt uznany za możliwy do wyszukania (na przykład klatkę kluczową wideo). To zdarzenie umożliwia skonstruowanie tabeli punktów wyszukiwania. Wartość byteCount wskazuje na pierwszy bajt komunikatu dla danego punktu wyszukiwania i jest zerowana, tak jak opisano to powyżej Aby przejść do punktu wyszukiwania, należy po odebraniu zdarzeniaNetStream.Seek.Notify znaleźć ciąg bajtów rozpoczynający się od punktu możliwego do wyszukania i wywołać metodę appendBytes(bytes). Jeśli argument bytes jest obiektem ByteArray zawierającym ciąg bajtów rozpoczynający się od punktu możliwego do wyszukania, odtwarzanie wideo rozpocznie się od punktu wyszukiwania.

Uwaga: Wywołania metody appendBytes() wewnątrz tej funkcji wywołania zwrotnego są ignorowane.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Właściwość onSeekPoint jest właściwością obiektu NetStream.client. Właściwość ta jest wymieniona w sekcji Zdarzenia, ponieważ reaguje na dane przekazywane do metody appendBytes(). Więcej informacji zawiera opis klasy NetStream oraz właściwości NetStream.client. Nie można używać metody addEventListener(), ani żadnej innej metody EventDispatcher, aby wykrywać lub przetwarzać właściwość onSeekPoint jako zdarzenie. Aby użyć właściwości onSeekPoint, należy zdefiniować funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Można jednak utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do wystąpienia tej podklasy.

Powiązane elementy interfejsu API

onTextData

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4

Tworzy detektor w celu odpowiedzi na odebranie przez program Flash Player danych tekstowych osadzonych w odtwarzanym pliku multimedialnym. Dane tekstowe są zapisane w formacie UTF-8 i mogą zawierać informacje na temat formatowania zgodne ze specyfikacją 3GP opisującą tekst z kodem czasowym.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Zdarzenie onTextData jest w rzeczywistości właściwością obiektu NetStream.client. Ta właściwość znajduje się na liście w sekcji Zdarzenia, ponieważ reaguje na zdarzenia dotyczące danych — zarówno w danych przesyłanych strumieniowo za pomocą serwera Flash Media Server, jak i podczas odtwarzania plików FLV. Aby uzyskać więcej informacji na ten temat, należy zapoznać się z opisem klasy NetStream. Nie można używać metody addEventListener(), ani żadnej innej metody klasy EventDispatcher, aby wykrywać lub przetwarzać właściwość onTextData jako zdarzenie. Należy zdefiniować funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Należy utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do instancji podklasy.

Skojarzony detektor zdarzeń uruchamiany jest po wywołaniu metody NetStream.play(), jednak przed przesunięciem głowicy odtwarzania.

Obiekt zdarzenia onTextData zawiera jedną właściwość dla każdego fragmentu danych tekstowych.


Przykład  ( Sposób korzystania z tego przykładu )

W kodzie tego przykładu używana jest właściwość Netstream.client, która obsługuje funkcje wywołania zwrotnego dla zdarzeń onTextData i onImageData. Funkcja onImageDataHandler() używa obiektu zdarzenia onImageData imageData, aby przechować tablicę bajtów. Natomiast funkcja onTextDataHandler() używa obiektu zdarzenia onTextData textData, aby przechować fragmenty danych tekstu (każdy fragment danych jest właściwością obiektu textData).

W kodzie należy zastąpić rzeczywistą lokalizację pliku multimedialnego tekstem lub metadanymi obrazu dla lokalizacji "yourURL".

Obraz i tekst można również obsługiwać za pomocą niestandardowej klasy. Aby uzyskać więcej informacji i przykładów, należy zapoznać się z artykułem Obsługa metadanych oraz punktów podpowiedzi w plikach wideo Flash.

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]);
                }
            }

        }

}

Powiązane elementy interfejsu API

onXMPData

Zdarzenie  

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Tworzy detektor w celu generowania odpowiedzi w momencie odebrania przez program Flash Player informacji charakterystycznych dla programu Adobe Extensible Metadata Platform (XMP) osadzonych w odtwarzanym pliku wideo. Informacje na temat formatów plików wideo obsługiwanych przez serwer Flash Media Server można znaleźć pod adresem www.adobe.com/go/learn_fms_fileformats_pl.

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Zdarzenie onXMPData jest w rzeczywistości właściwością obiektu NetStream.client. Ta właściwość znajduje się na liście w sekcji Zdarzenia, ponieważ reaguje na zdarzenia danych, zarówno w mediach strumieniowanych za pomocą serwera Flash Media Server, jak i podczas odtwarzania plików FLV. Więcej informacji zawiera opis klasy NetStream oraz właściwości NetStream.client. Nie można używać metody addEventListener(), ani żadnej innej metody EventDispatcher, aby wykrywać lub przetwarzać onMetaData jako zdarzenia. Należy zdefiniować funkcję wywołania zwrotnego i dołączyć ją do jednego z następujących obiektów:

  • Obiekt, do którego odwołuje się właściwość client instancji NetStream.
  • Instancja podklasy NetStream. NetStream jest klasą zapieczętowaną, co oznacza, że w środowisku wykonawczym do obiektu NetStream nie można dodawać właściwości ani metod. Można jednak utworzyć podklasę klasy NetStream i zdefiniować podprogram obsługi zdarzeń w takiej podklasie. Możliwe jest także utworzenie podklasy dynamicznej i dodanie funkcji obsługi zdarzeń do instancji podklasy.

Skojarzony detektor zdarzeń uruchamiany jest po wywołaniu metody NetStream.play(), jednak przed przesunięciem głowicy odtwarzania.

Obiekt przekazany do funkcji obsługującej zdarzenia onXMPData() posiada jedną właściwość data, która jest ciągiem znaków. Ciąg znaków generowany jest z pola najwyższego poziomu identyfikatora UUID. (128-bitowym identyfikatorem UUID pola najwyższego poziomu jest BE7ACFCB-97A9-42E8-9C71-999491E3AFAC). Pole najwyższego poziomu identyfikatora UUID zawiera dokładnie jeden dokument XML reprezentowany w postaci ciągu znaków kodowanego w standardzie UTF-8 i zakończonego wartością null.

Powiązane elementy interfejsu API

status

Zdarzenie  
Typ obiektu zdarzenia: flash.events.StatusEvent
właściwość StatusEvent.type = flash.events.StatusEvent.STATUS

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10.1, AIR 1.0, Flash Lite 4

Wywoływane, gdy aplikacja próbuje odtworzyć treść zaszyfrowaną przy użyciu mechanizmu DRM poprzez wywołanie metody NetStream.play(). Właściwość statusu w kodzie będzie miała wartość "DRM.encryptedFLV".

Uwaga: to zdarzenie nie jest obsługiwane w przypadku wideo w formacie H.264 w środowisku AIR 3.0 dla systemu iOS.

Definiuje wartość właściwości type obiektu zdarzenia status.

To zdarzenie ma następujące właściwości:

WłaściwośćWartość
bubblesfalse
cancelablefalse; nie ma domyślnego zachowania, które można byłoby anulować.
codeOpis stanu obiektu.
currentTargetObiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń.
levelKategoria komunikatu, np. "status", "warning" lub "error".
targetObiekt informujący o swoim stanie.

Powiązane elementy interfejsu API

Szczegół stałej

CONNECT_TO_FMS

Stała
public static const CONNECT_TO_FMS:String = "connectToFMS"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Statyczny obiekt używany jako parametr w konstruktorze instancji NetStream. Jest to wartość domyślna dla drugiego parametru konstruktora instancji NetStream; nie jest używana przez aplikację w przypadku stopniowego odtwarzania plików multimedialnych. Jeśli zostanie użyty, parametr spowoduje utworzenie przez konstruktor połączenia z instancją serwera Flash Media Server.

DIRECT_CONNECTIONS

Stała 
public static const DIRECT_CONNECTIONS:String = "directConnections"

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: Flash Player 10, AIR 1.5, Flash Lite 4

Tworzy połączenie pomiędzy równorzędnymi wydawcami. Ciąg znaków należy przekazać dla drugiego (opcjonalnego) parametru do konstruktora instancji NetStream. Za pomocą tego ciągu aplikacja może utworzyć połączenie NetStream, aby publikować do klientów dane audio i wideo.

NetConnectionExample.as

W poniższym przykładzie zastosowano obiekt Video razem z klasami NetConnection i NetStream w celu wczytania i odtworzenia pliku FLV.

W tym przykładzie kod tworzący obiekty Video oraz NetStream i wywołujący metody Video.attachNetStream() i NetStream.play() jest umieszczany w funkcji modułu obsługi. Moduł obsługi wywoływany jest jedynie w momencie próby połączenia z obiektem NetConnection zakończonej pomyślnie, czyli wtedy, gdy zdarzenie netStatus zwróci obiekt info z właściwością code wskazującą na powodzenie operacji. Zalecane jest odczekanie do momentu pomyślnego nawiązania połączenia, zanim wywołana zostanie metoda NetStream.play().

package {
    import flash.display.Sprite;
    import flash.events.NetStatusEvent;
    import flash.events.SecurityErrorEvent;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import flash.events.Event;

    public class NetConnectionExample extends Sprite {
        private var videoURL:String = "http://www.helpexamples.com/flash/video/cuepoints.flv";
        private var connection:NetConnection;
        private var stream:NetStream;
        private var video:Video = new Video();        

        public function NetConnectionExample() {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }

        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Stream not found: " + videoURL);
                    break;
            }
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function connectStream():void {
            addChild(video);
            var stream:NetStream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.client = new CustomClient();
            video.attachNetStream(stream);
            stream.play(videoURL);
        }
    }
}

class CustomClient {
    public function onMetaData(info:Object):void {
        trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
    }
    public function onCuePoint(info:Object):void {
        trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
    }
}
NetConnectionExample.2.as

Zamiast tworzyć własną klasę, można pobrać metadane za pomocą funkcji. Następująca propozycja, podana przez Billa Sandersa, wskazuje, jak edytować powyższy przykładowy kod dotyczący klasy NetConnectionExample, aby uzyskać wywołanie metadanych wewnątrz funkcji. W tym przypadku za pomocą obiektu mdata jest konfigurowana szerokość i wysokość wystąpienia obiektu video:
  //Place the following in the connectStream() function
  //in the NetConnectionExample code
  var metaSniffer:Object=new Object();  
  stream.client=metaSniffer; //stream is the NetStream instance  
  metaSniffer.onMetaData=getMeta;  
      
   
  // Add the following function within the NetConnectionExample class  
  private function getMeta (mdata:Object):void  
  {  
     video.width=mdata.width/2;  
     video.height=mdata.height/2;  
  }  




[ X ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.