用于 Adobe® Flash® Platform 的 ActionScript® 3.0 参考
主页  |  隐藏包列表和类列表 |   |   |  新增内容  |  索引  |  附录  |  为什么显示为英语?
过滤条件: AIR 30.0 和更早版本, Flash Player 30.0 和更早版本, Flash Lite 4
Flex 4.6 和更早版本, Flash Pro CS6 和更早版本
隐藏过滤条件
flash.net 

NetStream  - AS3

x

顶级
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

语言元素

全局常量
全局函数
运算符
语句、关键字和指令
特殊类型

附录

新增内容
编译器错误
编译器警告
运行时错误
迁移到 ActionScript 3
支持的字符集
仅适用于 MXML 的标签
Motion XML 元素
Timed Text 标记
不推荐使用的元素的列表
AccessibilityImplementation 常量
如何使用 ActionScript 示例
法律声明
flash.net
public class NetStream
继承NetStream Inheritance EventDispatcher Inheritance Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

NetStream 类通过 NetConnection 打开了一个单向流通道。

使用 NetStream 类执行以下操作:

  • 调用 NetStream.play(),从本地磁盘、Web 服务器或 Flash Media Server 播放媒体文件。
  • 调用 NetStream.publish() 以将视频、音频和数据流发布到 Flash Media Server。
  • 调用 NetStream.send() 将数据消息发送给所有订阅客户端。
  • 调用 NetStream.send() 向实时流添加元数据。
  • 调用 NetStream.appendBytes(),将 ByteArray 数据传入 NetStream。

注意:不能通过同一 NetStream 对象播放和发布流。

Adobe AIR 和 Flash Player 9.0.115.0 和更高版本支持从标准 MPEG-4 容器格式中派生的文件。这些文件包括 F4V、MP4、M4A、MOV、MP4V、3GP 和 3G2(如果他们包含 H.264 视频和/或 HEAAC v2 编码音频)。与 Sorenson 或 On2 中相同的编码配置文件相比,H.264 可以在更低的比特率下传送更高品质的视频。AAC 是在 MPEG-4 视频标准中定义的一种标准音频格式。HE-AAC v2 是 AAC 的扩展,它使用频带复制 (SBR) 和参量立体声 (PS) 技术在低比特率下提高编码效率。

有关支持的编解码器和文件格式的信息,请参阅下面的内容:

从 Flash Media Server 流、渐进式 F4V 文件或渐进式 FLV 文件中接收数据

Flash Media Server、F4V 文件和 FLV 文件可以在流处理或播放过程中发送包含特定数据点上的数据的事件对象。您可以使用两种方法在播放过程中从流或 FLV 文件中处理数据:

  • 将客户端属性与事件处理函数相关联以接收数据对象。使用 NetStream.client 属性分配对象以调用特定的数据处理函数。分配给 NetStream.client 属性的对象可以侦听下列数据点:onCuePoint()onImageData()onMetaData()onPlayStatus()onSeekPoint()onTextData()onXMPData()。在这些函数内编写过程,以处理在播放过程中从流中返回的数据对象。有关详细信息,请参阅 NetStream.client 属性。
  • 将客户端属性与 NetStream 类的子类相关联,然后编写事件处理函数以接收数据对象。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。然而,您可以创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

在您使用对象复制、直接路由或发布 API 之前,等待接收 NetGroup.Neighbor.Connect 事件。

注意:要通过音频文件(如 mp3 文件)发送数据,请使用 Sound 类将音频文件与 Sound 对象关联起来。然后使用 Sound.id3 属性读取声音文件中的元数据。

在 AIR for iOS 中支持 H.264 编码的视频

对于 H.264 视频,AIR 3.0 for iOS(及更高版本)支持完整 NetStream API 的子集。下表列出了 AIR for iOS 中不支持的 NetStream 播放成员:

不支持的属性不受支持的方法不支持的事件
bufferTimeappendBytes()onCuePoint(仅与 FLV 文件一起使用)
bufferLengthappendBytesAction()onImageData
backBufferTimestep()onSeekPoint
backBufferLengthonTextData
bufferTimeMaxonXMPData
bytesLoadeddrmError
currentFPSdrmStatus
inBufferSeekonDRMContentData
infodrmAuthenticate
liveDelayDRM.encryptedFLV 状态事件代码
maxPauseBufferTime
soundTransform
描述 RTMFP 连接的所有属性

有关使用 AIR for iOS 的其他信息,请参阅 NetStream.play() 方法。

查看示例

相关 API 元素



公共属性
 属性由以下参数定义
  audioReliable : Boolean
对于 RTMFP 连接,指定音频发送是否具有完全可靠性。
NetStream
  audioSampleAccess : Boolean
对于 RTMFP 连接,指定是否允许此 NetStream 中的对等订户捕获音频流。
NetStream
  backBufferLength : Number
[只读] 当前为后退和播放而缓存的以前显示的数据的秒数。
NetStream
  backBufferTime : Number
指定 Flash Player 尝试为后退和播放而缓存的先前显示的数据的数量(以秒为单位)。
NetStream
  bufferLength : Number
[只读] 数据当前存在于缓冲区中的秒数。
NetStream
  bufferTime : Number
指定在开始显示流之前需要多长时间将消息存入缓冲区。
NetStream
  bufferTimeMax : Number
指定实时流内容的最大缓冲区长度(以秒为单位)。
NetStream
  bytesLoaded : uint
[只读] 已加载到应用程序中的数据的字节数。
NetStream
  bytesTotal : uint
[只读] 正加载到应用程序中的文件的总大小(以字节为单位)。
NetStream
  checkPolicyFile : Boolean
指定应用程序在开始加载视频文件之前,是否尝试从所加载视频文件的服务器中下载跨域策略文件。
NetStream
  client : Object
指定对其调用回调方法以处理流或 F4V/FLV 文件数据的对象。
NetStream
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  currentFPS : Number
[只读] 每秒显示的帧的数目。
NetStream
  dataReliable : Boolean
对于 RTMFP 连接,指定发送 NetStream.send() 调用是否完全可靠。
NetStream
  farID : String
[只读] 对于 RTMFP 连接,为连接到此 NetStream 实例的远端标识符。
NetStream
  farNonce : String
[只读] 对于 RTMFP 和 RTMPE 连接,为此流的另一端实际选择的值,对此连接具有唯一性。
NetStream
  inBufferSeek : Boolean
指定显示的数据是否进行缓存以供智能搜索,是为 TRUE,否为 FALSE。
NetStream
  info : NetStreamInfo
[只读] 返回一个 NetStreamInfo 对象,其属性包含有关服务质量的统计信息。
NetStream
  liveDelay : Number
[只读] 在实时(未缓冲的)模式下,数据在订阅流的缓冲区中停留的秒数。
NetStream
  maxPauseBufferTime : Number
指定在暂停模式下需要多长时间(以秒为单位)将消息存入缓冲区。
NetStream
  multicastAvailabilitySendToAll : Boolean
对于 RTMFP 连接,指定对等多播片段可用性消息发送到所有同级还是只发送到一个同级。
NetStream
  multicastAvailabilityUpdatePeriod : Number
对于 RTMFP 连接,指定从消息发送到同级收到本地节点包含新的可用对等多播媒体片段通知的时间间隔(以秒为单位)。
NetStream
  multicastFetchPeriod : Number
对于 RTMFP 连接,指定从本地节点了解对等多播媒体片段可用到其尝试从同级获取该片段的时间(以秒为单位)。
NetStream
  multicastInfo : NetStreamMulticastInfo
[只读] 对于 RTMFP 连接,返回一个 NetStreamMulticastInfo 对象,其属性包含有关服务质量的统计数据。
NetStream
  multicastPushNeighborLimit : Number
对于 RTMFP 连接,指定主动将多播媒体推入其中的最大同级数。
NetStream
  multicastRelayMarginDuration : Number
对于 RTMFP 连接,指定从对等多播数据保持可用到发送到请求超出指定持续时间的同级的持续时间(以秒为单位)。
NetStream
  multicastWindowDuration : Number
对于 RTMFP 连接,指定对等多播重组窗口的持续时间(以秒为单位)。
NetStream
  nearNonce : String
[只读] 对于 RTMFP 和 RTMPE 连接,为流的这一端实际选择的值,对此连接具有唯一性。
NetStream
  objectEncoding : uint
[只读] 此 NetStream 对象的对象编码(AMF 版本)。
NetStream
  peerStreams : Array
[只读] 一个对象,其中容纳了侦听此发布方 NetStream 实例的所有订阅方 NetStream 实例。
NetStream
  soundTransform : flash.media:SoundTransform
在此 NetStream 对象中控制声音。
NetStream
  time : Number
[只读] 播放头的位置(以秒为单位)。
NetStream
  useHardwareDecoder : Boolean
指定是否对流使用硬件加速解码。
NetStream
  useJitterBuffer : Boolean
将实时无缓冲流 (bufferTime = 0) 的滞后最小化。
NetStream
  videoReliable : Boolean
对于 RTMFP 连接,指定视频发送是否具有完全可靠性。
NetStream
  videoSampleAccess : Boolean
对于 RTMFP 连接,指定是否允许此 NetStream 中的对等订户捕获视频流。
NetStream
  videoStreamSettings : VideoStreamSettings
指定流压缩属性。
NetStream
公共方法
 方法由以下参数定义
  
NetStream(connection:NetConnection, peerID:String = "connectToFMS")
创建可以用来通过 NetConnection 对象播放媒体文件和发送数据的流。
NetStream
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
将一个 ByteArray 传递到 NetStream 以进行播放。
NetStream
  
appendBytesAction(netStreamAppendBytesAction:String):void
表示时间刻度不连续,请刷新 FIFO,告知字节分析程序需要分析文件标头或 FLV 标签的开头。
NetStream
  
将流附加到新 NetConnection 对象。
NetStream
  
将音频流从作为源传递的 Microphone 对象附加到 NetStream 对象。
NetStream
  
attachCamera(theCamera:Camera, snapshotMilliseconds:int = -1):void
开始从摄像头捕获视频,如果将 theCamera 设置为 null,则会停止捕获操作。
NetStream
  
停止播放流上的所有数据,将 time 属性设置为 0,并使该流可用于其他用途。
NetStream
 Inherited
将事件调度到事件流中。
EventDispatcher
  
释放 NetStream 对象存放的所有资源。
NetStream
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
表示对象是否已经定义了指定的属性。
Object
 Inherited
表示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
每当一个同级发布流与一个同级订阅流相匹配时即调用。
NetStream
  
暂停视频流的播放。
NetStream
  
play(... arguments):void
从本地目录或 Web 服务器播放媒体文件;从 Flash Media Server 播放媒体文件或实时流。
NetStream
  
使用多比特率在文件间无缝切换,并允许 NetStream 在连接断开并重新连接后继续。
NetStream
  
从本地存储的媒体文件中提取任何 DRM 元数据。
NetStream
 Inherited
表示指定的属性是否存在、是否可枚举。
Object
  
publish(name:String = null, type:String = null):void
将流音频、视频和数据消息从客户端发送到 Flash Media Server,可以选择在传输期间录制此流。
NetStream
  
指定传入的音频是否在流上播放。
NetStream
  
指定传入的视频是否在流上播放。
NetStream
  
指定传入视频的帧速率。
NetStream
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
[静态] 在 AIR 应用程序中,这将删除所有本地缓存的数字权限管理 (DRM) 凭证数据。
NetStream
  
恢复播放暂停的视频流。
NetStream
  
seek(offset:Number):void
搜索与指定位置最接近的关键帧(在视频行业中也称为 I 帧)。
NetStream
  
send(handlerName:String, ... arguments):void
在发布的流上向所有订阅客户端发送一条消息。
NetStream
  
设置查看基础加密内容所需要的 DRM 身份验证凭据。
NetStream
 Inherited
设置循环操作动态属性的可用性。
Object
  
step(frames:int):void
前进或后退(相对于当前显示的帧)指定帧数的步骤。
NetStream
  
暂停或恢复流的播放。
NetStream
 Inherited
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件 摘要 由以下参数定义
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
  在异步引发异常(即来自本机异步代码)时调度。NetStream
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
  在 NetStream 对象尝试播放使用数字权限管理 (DRM) 加密的内容(播放前需要用户凭据以进行身份验证)时调度。NetStream
  在 NetStream 对象尝试播放数字权限管理 (DRM) 加密的文件的过程中遇到与 DRM 相关的错误时调度。NetStream
  在开始播放数字权限管理 (DRM) 加密的内容时(如果已对用户进行身份验证并授权播放该内容)调度。NetStream
  在出现输入或输出错误并导致网络操作失败时调度。NetStream
  播放视频内容和处理某种类型的消息时调度。NetStream
  在 NetStream 对象报告其状态或错误条件时调度。NetStream
  在播放视频文件期间到达嵌入提示点时建立侦听器进行响应。NetStream
  建立一个侦听器,以便在 AIR 提取媒体文件中嵌入的 DRM 内容元数据时作出响应。NetStream
  在 Flash Player 以字节数组形式接收到正在播放的媒体文件中嵌入的图像数据时建立侦听器进行响应。NetStream
  在 Flash Player 接收到正在播放的视频中嵌入的描述性信息时建立侦听器进行响应。NetStream
  在 NetStream 对象已完全播放流时建立侦听器进行响应。NetStream
  当追加字节分析程序遇到一个它认为是可搜索的点(例如,视频关键帧)时从 appendBytes() 同步调用。NetStream
  在 Flash Player 接收到正在播放的媒体文件中嵌入的文本数据时建立侦听器进行响应。NetStream
  建立一个侦听器,以便在 Flash Player 接收到特定于正在播放的视频中嵌入的 Adobe 可扩展元数据平台 (XMP) 的信息时进行响应。NetStream
  在应用程序尝试通过调用 NetStream.play() 方法播放用数字权限管理 (DRM) 加密的内容时调度。NetStream
公共常量
 常量由以下参数定义
  CONNECT_TO_FMS : String = "connectToFMS"
[静态] 一个静态对象,用作 NetStream 实例的构造函数的参数。
NetStream
  DIRECT_CONNECTIONS : String = "directConnections"
[静态] 创建同级对同级发行者连接。
NetStream
属性详细信息

audioReliable

属性
audioReliable:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定音频发送是否具有完全可靠性。为 TRUE 时,通过此 NetStream 传输的所有音频完全可靠。为 FALSE 时,传输的音频不完全可靠,但将在有限的时间内重新传输该音频,然后删除该音频。可使用 FALSE 值减少延迟,但这是以牺牲音频质量为代价的。

如果您基于不支持部分可靠性的网络协议,尝试将此属性设置为 FALSE,则尝试将被忽略并将属性设置为 TRUE。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get audioReliable():Boolean
    public function set audioReliable(value:Boolean):void

相关 API 元素

audioSampleAccess

属性 
audioSampleAccess:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定是否允许此 NetStream 中的对等订户捕获音频流。当为 FALSE 时,订阅者尝试捕获此音频流将显示权限错误。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get audioSampleAccess():Boolean
    public function set audioSampleAccess(value:Boolean):void

相关 API 元素

backBufferLength

属性 
backBufferLength:Number  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

当前为后退和播放而缓存的以前显示的数据的秒数。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。

此属性仅当数据流来自于 Flash Media Server 3.5.3 或更高版本时可用;有关 Flash Media Server 的详细信息,请参阅类说明。

要指定以前显示的数据的缓存时间,请使用 Netstream.backBufferTime 属性。

要防止数据缓存,请将 Netstream.inBufferSeek 属性设置为 FALSE。



实现
    public function get backBufferLength():Number

相关 API 元素

backBufferTime

属性 
backBufferTime:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

指定 Flash Player 尝试为后退和播放而缓存的先前显示的数据的数量(以秒为单位)。桌面应用程序的缓存时间默认值为 30 秒,移动应用程序的缓存时间默认值为 3 秒。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。

此属性仅当数据流来自 Flash Media Server 3.5.3 版本或更高版本时才可用;有关 Flash Media Server 的详细信息,请参阅类描述。

使用此属性可提高后退操作的性能,因为不会再次从服务器检索已显示的数据。而是开始从缓冲区重放流。在播放期间,继续从服务器流式传输数据直到缓冲区已满为止。

如果后退位置远远落后于缓存中的数据,则将刷新缓冲区;然后在请求的位置处从服务器开始流式传输数据。

要使用此属性,请将 Netstream.inBufferSeek 属性设置为 TRUE。



实现
    public function get backBufferTime():Number
    public function set backBufferTime(value:Number):void

相关 API 元素

bufferLength

属性 
bufferLength:Number  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

数据当前存在于缓冲区中的秒数。您可以将此属性与 bufferTime 属性一起使用,以评估缓冲区将近填满的程度;例如,向正等待数据加载到缓冲区中的用户显示反馈。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get bufferLength():Number

相关 API 元素

bufferTime

属性 
bufferTime:Number

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

指定在开始显示流之前需要多长时间将消息存入缓冲区。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。

默认值是 0.1(十分之一秒)。要确定当前位于缓冲区中的秒数,请使用 bufferLength 属性。

要播放服务器端播放列表,请将 bufferTime 设置为至少 1 秒。如果出现播放问题,请增加 bufferTime 的长度。

录制的内容:若要避免在对预先录制的(非实时)内容进行流处理时失真,不要将 Netstream.bufferTime 的值设置为 0。对于预先录制的内容,默认情况下应用程序将使用输入缓冲区对媒体数据进行排队并正确播放媒体。对于预先录制的内容,请使用默认设置或延长缓冲时间。

实时内容:对实时内容进行流处理时,请将 bufferTime 属性设置为 0。

从 Flash Player 9.0.115.0 开始,在调用 NetStream.pause() 时,Flash Player 不再清除缓冲区。在 Flash Player 9.0.115.0 之前,恢复播放之前 Flash Player 将等待缓冲区填满,这通常会导致延迟。

对于一次暂停,NetStream.bufferLength 属性的限值为 60 秒或二倍的 NetStream.bufferTime 值(取二者之中的较大值)。例如,如果 bufferTime 为 20 秒,在 NetStream.bufferLength 为较大值 20*2 (40) 或 60 之前,Flash Player 将一直进行缓冲。在本例中,在 bufferLength 为 60 之前,Flash Player 将一直进行缓冲。如果 bufferTime 为 40 秒,在 bufferLength 为较大值 40*2 (80) 或 60 之前,Flash Player 将一直进行缓冲。在本例中,在 bufferLength 为 80 秒之前,Flash Player 将一直进行缓冲。

bufferLength 属性还有一个绝对限制。如果对 pause() 的任何调用导致 bufferLength 增大到 600 秒以上或 bufferTime * 2 的值(取二者中的较大值),Flash Player 将刷新缓冲区并将 bufferLength 重置为 0。例如,如果 bufferTime 为 120 秒,当 bufferLength 达到 600 秒时,Flash Player 将刷新缓冲区;如果 bufferTime 为 360 秒,当 bufferLength 达到 720 秒时,Flash Player 将刷新缓冲区。

提示:例如,在查看器监视商用版的同时,可以在代码中使用 NetStream.pause() 来缓冲数据,然后在开始播放主视频时取消暂停。

有关新的暂停行为的详细信息,请参阅 http://www.adobe.com/go/learn_fms_smartpause_cn

Flash Media Server。缓冲行为取决于缓冲时间是在发布流还是订阅流中设置的。对于发布流,bufferTime 指定在应用程序开始删除帧之前传出缓冲区可以增长多长时间。在高速连接上,不必担心缓冲时间问题;发送数据的速度几乎与应用程序将数据存入缓冲区一样快。但在速度较慢的连接上,应用程序将数据存入缓冲区与将数据发送到客户端的速度可能会有很大差异。

对于订阅流,bufferTime 指定在开始显示流之前需要花多长时间将传入数据存入缓冲区。

在播放录制流时,如果 bufferTime 为 0,Flash 会将其设置为较小的值(大约为 10 毫秒)。如果以后播放实时流(例如,从播放列表中),则会永久保留此缓冲时间。即,流的 bufferTime 始终为非零值。



实现
    public function get bufferTime():Number
    public function set bufferTime(value:Number):void

相关 API 元素

bufferTimeMax

属性 
bufferTimeMax:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

指定实时流内容的最大缓冲区长度(以秒为单位)。默认值为 0。由于网络和设备问题(如发送方和接收方之间存在时钟偏移),缓冲区长度可随时间不断增加。设置此属性可使实时应用(如会议和监视)的缓冲区长度最大化。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。

bufferTimeMax > 0,并且 bufferLength >= bufferTimeMax 时,将加快音频的播放速度,直到 bufferLength 达到 bufferTime。如果实时流仅包含视频,则视频播放较快,直到 bufferLength 达到 bufferTime

Flash Player 将捕捉速率控制在 1.5% 和 6.25% 之间,具体取决于播放延迟量(bufferLengthbufferTime 差异)。如果流中包含音频,通过缩减频率域采样,使音频失真最小化,可以加快播放。

设置 bufferTimeMax 属性可在以下情况下启用实时缓冲流追赶:

  • 以数据流的方式从 Flash Media Server 传输实时介质。
  • 以数据流的方式在数据生成模式 (NetStream.appendBytes()) 下传输实时介质。



实现
    public function get bufferTimeMax():Number
    public function set bufferTimeMax(value:Number):void

相关 API 元素

bytesLoaded

属性 
bytesLoaded:uint  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

已加载到应用程序中的数据的字节数。您可以将此属性与 bytesTotal 属性一起使用,以评估缓冲区将近填满的程度;例如,向正等待数据加载到缓冲区中的用户显示反馈。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get bytesLoaded():uint

相关 API 元素

bytesTotal

属性 
bytesTotal:uint  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

正加载到应用程序中的文件的总大小(以字节为单位)。



实现
    public function get bytesTotal():uint

相关 API 元素

checkPolicyFile

属性 
checkPolicyFile:Boolean

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

指定应用程序在开始加载视频文件之前,是否尝试从所加载视频文件的服务器中下载跨域策略文件。使用此属性进行渐进式视频下载并加载位于进行调用的 SWF 文件所在的域外部的文件。当使用 RTMP 时,忽略此属性。

将此属性设置为 true 以对从进行调用的 SWF 外部的域中加载的视频文件调用 BitmapData.draw()BitmapData.draw() 方法提供对视频的像素级访问。在加载时未将 checkPolicyFile 属性设置为 true 的情况下,如果调用 BitmapData.draw(),可能会收到一个 SecurityError 异常,因为没有下载所需的策略文件。

不要将此属性设置为 true,除非您希望对正在加载的视频进行像素级访问。检查策略文件会占用网络带宽,并可能延迟下载的开始时间。

当您调用 checkPolicyFile 设置为 trueNetStream.play() 方法时,Flash Player 或 AIR 运行时要么成功下载相关的跨域策略文件,要么在下载之前确定没有可下载的这类策略文件。为了确认是否存在策略文件,Flash Player 或 AIR 运行时将执行以下操作,具体顺序如下:

  1. 应用程序考虑已经下载的策略文件。
  2. 应用程序尝试下载在 Security.loadPolicyFile() 方法调用中指定的任何未处理的策略文件。
  3. 应用程序尝试从与传递给 NetStream.play() 的 URL 相对应的默认位置下载策略文件,在与该 URL 所在的同一台服务器上,该默认位置为 /crossdomain.xml

在任何情况下,Flash Player 或 Adobe AIR 要求在视频服务器上必须存在一个相应的策略文件,并且要求它可提供对 URL (您根据策略文件的位置已传递给 play())上对象的访问,并且它还允许调用代码文件的域通过一个或多个 <allow-access-from> 标签访问该视频。

如果将 checkPolicyFile 设置为 true,则应用程序会等到策略文件确认完毕才下载视频。等待对视频数据执行任何像素级操作(如调用 BitmapData.draw()),直至从 NetStream 对象收到 onMetaDataNetStatus 事件。

如果将 checkPolicyFile 设置为 true,但未找到相关的策略文件,则您只有执行需要策略文件的操作时,才会接收到错误,然后应用程序会引发 SecurityError 异常。

如果从使用服务器端 HTTP 重定向的 URL 中下载文件,请谨慎使用 checkPolicyFile。应用程序尝试检索与您在 NetStream.play() 中指定的初始 URL 对应的策略文件。如果最终文件由于 HTTP 重定向而来自不同的 URL,则最初下载的策略文件可能不适用于该文件的最终 URL,该 URL 对安全决策至关重要。

有关策略文件的详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“网站控制(策略文件)”和 Flash Player 开发人员中心主题安全性



实现
    public function get checkPolicyFile():Boolean
    public function set checkPolicyFile(value:Boolean):void

相关 API 元素

client

属性 
client:Object

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

指定对其调用回调方法以处理流或 F4V/FLV 文件数据的对象。默认对象为 this,将创建 NetStream 对象。如果将 client 属性设置为另一个对象,则将对该对象调用回调方法。NetStream.client 对象可调用下列函数并接收关联数据对象:onCuePoint()onImageData()onMetaData()onPlayStatus()onSeekPoint()onTextData()onXMPData()

client 属性与事件处理函数相关联:

  1. 创建一个对象并将其分配给 NetStream 对象的 client 属性:
         var customClient:Object = new Object();
         my_netstream.client = customClient;
         
  2. 为所需数据事件分配一个处理函数作为客户端对象的属性:
         customClient.onImageData = onImageDataHandler;
         
  3. 编写处理函数以接收数据事件对象,比如:
          public function onImageDataHandler(imageData:Object):void {
                  trace("imageData length: " + imageData.data.length);
          }
         

当数据经过流或在播放过程中传递时,将用该数据填充数据事件对象(本例中为 imageData 对象)。请参阅 onImageData 的描述,其中包括一个分配给 client 属性的对象的完整示例。

client 属性与子类相关联:

  1. 用处理函数创建一个子类以接收数据事件对象:
         class CustomClient {
            public function onMetaData(info:Object):void {
                trace("metadata: duration=" + info.duration + " framerate=" + info.framerate);
         }
         
  2. 将子类的实例分配给 NetStream 对象的 client 属性:
         my_netstream.client = new CustomClient();
         

当数据经过流或在播放过程中传递时,将用该数据填充数据事件对象(本例中为 info 对象)。请参阅 NetStream 类末尾的类示例,该示例演示了将一个子类实例分配给 client 属性的过程。



实现
    public function get client():Object
    public function set client(value:Object):void

引发
TypeError — 必须将 client 属性设置为非空对象。

相关 API 元素

currentFPS

属性 
currentFPS:Number  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

每秒显示的帧的数目。如果要导出视频文件以在多个系统上播放,您可以在测试期间检查该值,以帮助确定在导出该文件时应用的压缩量。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get currentFPS():Number

dataReliable

属性 
dataReliable:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定发送 NetStream.send() 调用是否完全可靠。为 TRUE 时,通过此 NetStream 传输的 NetStream.send() 调用完全可靠。当为 FALSE 时,传输的 NetStream.send() 调用不完全可靠,但将在有限的时间内重新传输该调用,然后删除该调用。可将此值设置为 FALSE 以减少延迟,但这是以牺牲数据质量为代价的。

如果您基于不支持部分可靠性的网络协议,尝试将此属性设置为 FALSE,则尝试将被忽略并将属性设置为 TRUE。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get dataReliable():Boolean
    public function set dataReliable(value:Boolean):void

相关 API 元素

farID

属性 
farID:String  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

对于 RTMFP 连接,为连接到此 NetStream 实例的远端标识符。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get farID():String

farNonce

属性 
farNonce:String  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

对于 RTMFP 和 RTMPE 连接,为此流的另一端实际选择的值,对此连接具有唯一性。此值出现在流的另一端作为其 nearNonce 值。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get farNonce():String

inBufferSeek

属性 
inBufferSeek:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

指定显示的数据是否进行缓存以供智能搜索,是为 TRUE,否为 FALSE。默认值为 FALSE。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。

Flash Media Server 3.5.3 与 Flash Player 10.1 配合使用时,支持智能搜索。智能搜索使用后退和前进缓冲进行搜索,不从服务器请求数据。标准搜索根据搜索时间刷新缓冲数据并要求服务器发送新数据。

调用 NetStream.step() 以前进或后退指定的帧数。调用 NetStream.seek() 以向前和向后搜索指定的秒数。

智能搜索可降低服务器负载并改进搜索性能。设置 inBufferSeek=true 并调用 step()seek() 以创建:

  • 客户端 DVR 功能。在客户端缓冲内搜索,而不必请求服务器发送新视频。
  • 技巧模式。创建可逐帧进退、快进、快退和慢运作前进的播放器。

inBufferSeek=true 并且调用 NetStream.seek() 成功时,NetStatusEvent info.description 属性包含字符串 "client-inBufferSeek"

当调用 NetStream.step() 成功时,NetStatusEvent info.code 属性包含字符串 "NetStream.Step.Notify"



实现
    public function get inBufferSeek():Boolean
    public function set inBufferSeek(value:Boolean):void

相关 API 元素

info

属性 
info:NetStreamInfo  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

返回一个 NetStreamInfo 对象,其属性包含有关服务质量的统计信息。此对象是当前状态的快照。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get info():NetStreamInfo

相关 API 元素

liveDelay

属性 
liveDelay:Number  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在实时(未缓冲的)模式下,数据在订阅流的缓冲区中停留的秒数。此属性指定当前的网络传输延迟(延迟时间)。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。

此属性主要用于服务器(如 Flash Media Server);有关详细信息,请参阅类说明。

您可以获取此属性的值来粗略估量流的传输质量,并将其传达给用户。



实现
    public function get liveDelay():Number

maxPauseBufferTime

属性 
maxPauseBufferTime:Number

运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

指定在暂停模式下需要多长时间(以秒为单位)将消息存入缓冲区。可以使用此属性来限制暂停模式下进行的缓冲程度。NetStream.bufferLength 的值一旦到达此限制,就会停止缓冲。

如果未设置此值,则将默认值限制为 60 秒或每个暂停的 NetStream.bufferTime 值的两倍,以较大的值为准。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get maxPauseBufferTime():Number
    public function set maxPauseBufferTime(value:Number):void

相关 API 元素

multicastAvailabilitySendToAll

属性 
multicastAvailabilitySendToAll:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定对等多播片段可用性消息发送到所有同级还是只发送到一个同级。TRUE 值指定在每个指定的间隔内向所有同级发送一次此消息。FALSE 值指定在每个指定的间隔内仅向一个同级发送此消息。此间隔由 multicastAvailabilityUpdatePeriod 属性确定。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastAvailabilitySendToAll():Boolean
    public function set multicastAvailabilitySendToAll(value:Boolean):void

相关 API 元素

multicastAvailabilityUpdatePeriod

属性 
multicastAvailabilityUpdatePeriod:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定从消息发送到同级收到本地节点包含新的可用对等多播媒体片段通知的时间间隔(以秒为单位)。较高值可提高批处理效率并减少控制开销,但是它们会在片断位于窗口外之前减少检索片断的时间,从而降低质量。较低值可减少延迟并提高质量,但会增加控制开销。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastAvailabilityUpdatePeriod():Number
    public function set multicastAvailabilityUpdatePeriod(value:Number):void

相关 API 元素

multicastFetchPeriod

属性 
multicastFetchPeriod:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定从本地节点了解对等多播媒体片段可用到其尝试从同级获取该片段的时间(以秒为单位)。通过此值,可在尝试从同级获取片段之前,将该片段主动推入本地节点。它也允许多个同级通知片断的可用性,因此可在多个同级之间扩展提取加载。

较高值可提高负载平衡和同级网格中的清晰度,但会减少可用的 multicastWindowDuration 并增加延迟。较低值可减少需要提取时的延迟,但可能会增加重复的数据接收并降低同级网格负载平衡。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastFetchPeriod():Number
    public function set multicastFetchPeriod(value:Number):void

相关 API 元素

multicastInfo

属性 
multicastInfo:NetStreamMulticastInfo  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,返回一个 NetStreamMulticastInfo 对象,其属性包含有关服务质量的统计数据。此对象是当前状态的快照。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastInfo():NetStreamMulticastInfo

相关 API 元素

multicastPushNeighborLimit

属性 
multicastPushNeighborLimit:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定主动将多播媒体推入其中的最大同级数。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastPushNeighborLimit():Number
    public function set multicastPushNeighborLimit(value:Number):void

multicastRelayMarginDuration

属性 
multicastRelayMarginDuration:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定从对等多播数据保持可用到发送到请求超出指定持续时间的同级的持续时间(以秒为单位)。持续时间由 multicastWindowDuration 属性指定。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastRelayMarginDuration():Number
    public function set multicastRelayMarginDuration(value:Number):void

相关 API 元素

multicastWindowDuration

属性 
multicastWindowDuration:Number

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定对等多播重组窗口的持续时间(以秒为单位)。较短值可减少延迟,但可能会因为不允许使用足够的时间获取所有片断而降低质量。相反,较大值可能会因为提供更多获取所有片断的时间而提高质量,但相应地也会增加延迟。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get multicastWindowDuration():Number
    public function set multicastWindowDuration(value:Number):void

相关 API 元素

nearNonce

属性 
nearNonce:String  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

对于 RTMFP 和 RTMPE 连接,为流的这一端实际选择的值,对此连接具有唯一性。此值出现在流的另一端作为其 farNonce 值。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get nearNonce():String

objectEncoding

属性 
objectEncoding:uint  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

此 NetStream 对象的对象编码(AMF 版本)。NetStream 对象从关联的 NetConnection 对象继承了它的 objectEncoding 值。如果 ActionScript 3.0 SWF 文件需要与在 Flash Player 9 之前发布的服务器进行通信,则了解此属性非常重要。有关详细信息,请参阅 NetConnection 类中 objectEncoding 属性的描述。

此属性的值取决于流是本地还是远程的。本地流返回 NetConnection.defaultObjectEncoding 的值。在这些流上,null 被传递给 NetConnection.connect() 方法。远程流返回与服务器建立的连接的对象编码。通过远程流连接到服务器。

如果您在未连接时就尝试读取此属性,或者尝试更改此属性,则应用程序将引发一个异常。



实现
    public function get objectEncoding():uint

相关 API 元素

peerStreams

属性 
peerStreams:Array  [只读]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

一个对象,其中容纳了侦听此发布方 NetStream 实例的所有订阅方 NetStream 实例。



实现
    public function get peerStreams():Array

soundTransform

属性 
soundTransform:flash.media:SoundTransform

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

在此 NetStream 对象中控制声音。有关详细信息,请参阅 SoundTransform 类。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



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

相关 API 元素

time

属性 
time:Number  [只读]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

播放头的位置(以秒为单位)。

Flash Media Server 对于订阅流,是指流已播放的秒数。对于发布流,是指流已发布的秒数。此数字精确到千分位;将其乘以 1000 可得出流已播放的毫秒数。

对于订阅流,如果服务器停止发送数据,但流保持打开,则 time 属性的值将停止增加。当服务器再次开始发送数据时,该值将继续增加,起始位置为上次停止处(服务器停止发送数据时)。

当流从一个播放列表元素切换到另一个播放列表元素时,time 的值将继续增加。如果调用 NetStream.play() 并将 reset 设置为 1true,或者调用 NetStream.close(),则会将此属性设置为 0。



实现
    public function get time():Number

相关 API 元素

useHardwareDecoder

属性 
useHardwareDecoder:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 11, AIR 3

指定是否对流使用硬件加速解码。

注意:在视频播放期间无法设置此属性。必须在调用 NetStream.play() 之前设置。

默认值为 true。



实现
    public function get useHardwareDecoder():Boolean
    public function set useHardwareDecoder(value:Boolean):void

相关 API 元素

useJitterBuffer

属性 
useJitterBuffer:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 11.3, AIR 3.3

将实时无缓冲流 (bufferTime = 0) 的滞后最小化。取代传统基于推送的捕获机制,音频消息放置在自适应抖动缓冲区中。当扬声器设备需要音频时,从抖动缓冲区中弹出消息,进行解码,然后播放。Speex 和 G.711 一直使用这一基于请求的方法,不用考虑该设置(useJitterBuffer 为 Speex/G.711 返回 true)。在无缓冲模式中启用时,所有编解码器都使用抖动缓冲区,比如 Speex、G.711、Nellymoser、MP3 和 AAC。此属性在缓冲模式 (bufferTime > 0) 中无效,因此 useJitterBuffer 返回 false。



实现
    public function get useJitterBuffer():Boolean
    public function set useJitterBuffer(value:Boolean):void

videoReliable

属性 
videoReliable:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定视频发送是否具有完全可靠性。为 TRUE 时,通过此 NetStream 传输的所有视频完全可靠。为 FALSE 时,传输的视频不完全可靠,但将在有限的时间内重新传输该视频,然后删除该视频。可使用此 FALSE 值减少延迟,但会以牺牲视频质量为代价。

如果您基于不支持部分可靠性的网络协议,尝试将此属性设置为 FALSE,则尝试将被忽略并将属性设置为 TRUE。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get videoReliable():Boolean
    public function set videoReliable(value:Boolean):void

相关 API 元素

videoSampleAccess

属性 
videoSampleAccess:Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

对于 RTMFP 连接,指定是否允许此 NetStream 中的对等订户捕获视频流。当为 FALSE 时,订阅者尝试捕获此视频流将显示权限错误。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此属性。



实现
    public function get videoSampleAccess():Boolean
    public function set videoSampleAccess(value:Boolean):void

相关 API 元素

videoStreamSettings

属性 
videoStreamSettings:VideoStreamSettings

语言版本: ActionScript 3.0
运行时版本: Flash Player 11/ConnectAddin, AIR 3

指定流压缩属性。有关详细信息,请参见 VideoStreamSettings。当系统没有附加摄像头时,将返回 null。



实现
    public function get videoStreamSettings():VideoStreamSettings
    public function set videoStreamSettings(value:VideoStreamSettings):void

相关 API 元素

构造函数详细信息

NetStream

()构造函数
public function NetStream(connection:NetConnection, peerID:String = "connectToFMS")

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

创建可以用来通过 NetConnection 对象播放媒体文件和发送数据的流。

如果未处理 NetStream 对象的 netStatus 事件,系统会认为其无效。为避免这种错误,可在创建 NetStream 对象之后并调用其 play() 方法之前注册一个用于 netStatus 的侦听器。

参数
connection:NetConnection — 一个 NetConnection 对象。
 
peerID:String (default = "connectToFMS") — 此可选参数在 Flash Player 10 和更高版本中可用,与 RTMFP 连接配合使用。(如果 NetConnection.protocol 属性的值不是“rtmfp”,则忽略此参数。)使用下列值之一:
  • 要连接到 Flash Media Server,请指定 NetStream.CONNECT_TO_FMS
  • 要向同级直接发布,请指定 NetStream.DIRECT_CONNECTIONS
  • 若要从特定同级直接播放,请指定该同级的标识(请参阅 NetConnection.nearIDNetStream.farID)。
  • (Flash Player 10.1 或 AIR 2 或更高版本)要在对等多播组中发布或播放,请指定 groupspec 字符串(请参阅 GroupSpecifier 类)。

大多数情况下,groupspec 有可能使用本地系统上的网络上行链路。在这种情况下,要求用户具有使用计算机的网络资源的权限。如果用户允许此种使用,则将 NetStream.Connect.Success NetStatusEvent 发送到 NetConnection 的事件侦听器。如果用户拒绝允许此种使用,则发送 NetStream.Connect.Rejected 事件。当指定 groupspec 时,在接收 NetStream.Connect.Success 事件之前,使用 NetStream 对象的任何方法都会出错,并将引发异常。

如果您将此参数包含在构造函数语句中,但传递 null 值,则此值将设置为 "connectToFMS"


引发
ArgumentError — 未连接 NetConnection 实例。

相关 API 元素


示例  ( 如何使用本示例 )

以下代码演示一个用于渐进式下载和显示分配给变量 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);

以下代码演示一个用于流式处理和显示 connect() 命令中指定的远程 Flash Media Server 实例上的视频(为变量 videoURL 分配的视频)的连接:
var my_video:Video = new Video();
addChild(my_video);
var my_nc:NetConnection = new NetConnection();
my_nc.connect("rtmp://www.yourfmsserver.com/someappname");
var my_ns:NetStream = new NetStream(my_nc, NetStream.CONNECT_TO_FMS);
my_video.attachNetStream(my_ns);
my_ns.play(videoURL);
方法详细信息

appendBytes

()方法
public function appendBytes(bytes:ByteArray):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

将一个 ByteArray 传递到 NetStream 以进行播放。对处于“数据生成模式”的 NetStream 调用此方法。要使 NetStream 处于数据生成模式,请对在已连接到 null 的 NetConnection 上创建的 NetStream 调用 NetStream.play(null)。对未处于数据生成模式下的 NetStream 调用 appendBytes() 会出错并引发异常。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此方法。

字节分析程序通过标头识别 FLV 文件。分析该标头后,appendBytes() 要求将来的所有调用都继续使用同一个真实文件或虚拟文件。除非调用 appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN),否则不需要分析其他标头。

NetStream 对象具有两个缓冲区:从 appendBytes() 到 NetStream 的 FIFO 和播放缓冲区。FIFO 是部分 FLV 标签重组缓冲区,包含的不完整 FLV 标签不超过一个。调用 NetStream.seek() 以刷新两个缓冲区。调用 seek() 之后,调用 appendBytesAction() 将时间刻度重置为从下一个追加消息的时间戳开始。

appendBytes() 的每次调用都会向 FIFO 添加字节,直到 FLV 标签完整。FLV 标签完整后会移到播放缓冲区。对 appendBytes() 的调用可以写入多个 FLV 标签。第一批字节完成一个现有 FLV 标签(该标签会移到播放缓冲区中)。完整的 FLV 标签会移到播放缓冲区中。未组成完整 FLV 标签的剩余字节将进入 FIFO。调用 appendBytes() 可使 FIFO 中的字节完整,也可以使用 RESET_SEEKRESET_BEGIN 参数调用 appendBytesAction() 来刷新 FIFO 中的字节。

注意:在对 appendBytes() 执行后续调用之前,字节分析程序可能无法完整地解码对 appendBytes() 的调用。

参数

bytes:ByteArray

相关 API 元素

appendBytesAction

()方法 
public function appendBytesAction(netStreamAppendBytesAction:String):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

表示时间刻度不连续,请刷新 FIFO,告知字节分析程序需要分析文件标头或 FLV 标签的开头。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此方法。

调用 NetStream.seek() 以刷新 NetStream 缓冲。在您调用 appendBytesAction() 并传递 RESET_BEGINRESET_SEEK 参数之前,字节分析程序保持为刷新模式。捕获 "NetStream.Seek.Notify" 事件,以便在搜索之后调用 appendByte Action()。新的文件标头可以支持播放列表,并且无需调用 NetStream.seek() 即可进行搜索。

您还可以调用此方法为 onSeekPoint()) 回调重置字节计数器。

参数

netStreamAppendBytesAction:String

相关 API 元素

attach

()方法 
public function attach(connection:NetConnection):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

将流附加到新 NetConnection 对象。在连接断开并且已重新连接后,调用此方法可将 NetStream 附加到新的 NetConnection 对象。当连接断开时,Flash Player 和 AIR 继续从播放点流式播放。您也可以使用此方法实现负载平衡。

此方法要求使用 Flash Media Server 3.5.3 版或更高版本。

要使用此方法实现流重新连接,请参阅 Flash Media Server 3.5.3 文档

要使用此方法实现负载平衡,请执行下列操作:

  1. 将已连接的流附加到另一服务器上的 NetConnection 对象。
  2. 将流成功附加到新连接后,调用以前连接上的 NetConnection.close() 以防止出现数据泄露。
  3. 调用 NetStream.play2() 并设置 NetStreamPlayOptions.transition 的值以执行恢复。将其余的 NetStreamPlayOptions 属性设置为最初调用 NetStream.play()NetStream.play2() 时使用的值以启动流。

参数

connection:NetConnection

相关 API 元素

attachAudio

()方法 
public function attachAudio(microphone:Microphone):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

将音频流从作为源传递的 Microphone 对象附加到 NetStream 对象。此方法仅供指定流的发布者使用。

使用此方法和 Flash Media Server 可以将实时音频发送到服务器。请在调用 publish() 方法之前或之后调用此方法。

设置 Microphone.rate 属性以匹配声音捕获设备的速率。调用 setSilenceLevel() 以设置静默级别阈值。要控制音频流的声音属性(音量和声像调节),请使用 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")
     

要听到声音,请调用 NetStream.play() 方法,然后调用 DisplayObjectContainer.addChild() 将音频路由到显示列表上的某个对象。

参数

microphone:Microphone — 要传输的音频流的源。

相关 API 元素

attachCamera

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

开始从摄像头捕获视频,如果将 theCamera 设置为 null,则会停止捕获操作。此方法仅供指定流的发布者使用。

此方法用于 Flash Media Server;有关详细信息,请参阅类说明。

在附加了视频源后,必须调用 NetStream.publish() 才能开始传输。希望显示视频的订户必须调用 NetStream.play()Video.attachCamera() 方法,才能在舞台上显示视频。

可以使用 snapshotMilliseconds 并通过提供一个正数值,将指定毫秒数的尾片添加到视频输入信号中的方式来发送单个快照(通过提供值 0)或一系列快照(实际上是延时拍摄镜头)。尾片延长了视频消息的显示时间。通过对 snapshotMilliseconds 使用正数值来重复调用 attachCamera(),交替快照和尾片的序列将创建延时拍摄镜头。例如,可以每天捕获一个帧,将其追加到视频文件上。当订阅者播放该文件时,每个帧都会在屏幕上显示指定的毫秒数,然后才会显示下一个帧。

snapshotMilliseconds 参数的用途不同于可通过 Camera.setMode() 设置的 fps 参数。在指定 snapshotMilliseconds 时,您可以控制录制的帧之间的时间间隔。在使用 Camera.setMode() 指定 fps 时,您在控制录制和播放多长时间。

例如,假设您想每隔 5 分钟取一个快照,一共要取 100 个快照。您可以通过以下两种方式来实现:

  • 您可以每隔 5 分钟发出一个 NetStream.attachCamera(myCamera, 500) 命令,重复执行 100 次。整个录制过程将需要 500 分钟,但是产生的文件将在 50 秒内完成播放(100 个帧,帧与帧之间的时间间隔为 500 毫秒)。
  • 您可以发出一个 fps 值为 1/300(每 300 秒一次,即每 5 分钟一次)的 Camera.setMode() 命令,然后发出一个 NetStream.attachCamera(source) 命令,使摄像头连续捕捉 500 分钟的图像。产生的文件将在 500 分钟内完成播放,这与录制的时间长度相同,每个帧显示 5 分钟。

这两种方法都同样捕获了 500 个帧,并且都很有用;具体采用何种方法,主要取决于对播放的要求。例如,在第二种情况中,可以是整段时间一直在录制音频。另外,两个文件的大小也相近。

参数

theCamera:Camera — 视频传输的源。有效值为一个 Camera 对象(可开始捕获视频)和 null。如果传递 null,应用程序将停止捕获视频,并忽略发送的其他任何参数。
 
snapshotMilliseconds:int (default = -1) — 指定视频流是连续、单帧,还是用于创建延时拍摄的一系列单帧。
  • 如果省略此参数,应用程序将捕获所有视频,直到将 null 值传递给 attachCamera
  • 如果传递 0,应用程序将仅捕获一个视频帧。使用此值可传输先前流中的“快照”。Flash Player 或AIR 会将无效参数、负参数或非数字参数均解释为 0。
  • 如果传递了正数值,应用程序将捕获单个视频帧,然后将指定长度的停顿作为片尾追加到快照上。使用此值可实现延时拍摄效果。

close

()方法 
public function close():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

停止播放流上的所有数据,将 time 属性设置为 0,并使该流可用于其他用途。此方法还会删除通过 HTTP 下载的视频文件的本地副本。虽然应用程序会删除它所创建的文件的本地副本,但可能会在缓存目录中永久保留一个副本。如果必须完全禁止缓存视频文件或在本地进行存储,请使用 Flash Media Server。

如果使用 Flash Media Server,则在从发布流中调用 NetStream.play() 或从订阅流中调用 NetStream.publish() 时,将隐式地调用此方法。请注意:

  • 如果从发布流中调用 close(),该流将停止发布,发布者现在可以将该流用于其他用途。订阅者不再接收在该流中发布的任何内容,因为该流已停止发布。
  • 如果从订阅流中调用 close(),该流将停止为订阅者播放,订阅者现在可以将该流用于其他用途。其他订阅者不受影响。
  • 您可以让订阅流停止播放,而无需使用 flash.net.NetStream.play(false) 关闭该流或更改流类型。

相关 API 元素

dispose

()方法 
public function dispose():void

语言版本: ActionScript 3.0
运行时版本: Flash Player 11, AIR 3.0

释放 NetStream 对象存放的所有资源。

dispose() 方法类似于 close 方法。这两种方法的主要差别在于 dispose() 会释放用于显示当前视频帧的内存。如果该帧当前正在屏幕上显示,则显示将变为空白。close() 方法不会将显示变为空白,因为该方法不会释放此内存。

onPeerConnect

()方法 
public function onPeerConnect(subscriber:NetStream):Boolean

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

每当一个同级发布流与一个同级订阅流相匹配时即调用。在订户连接到发行者之前,调用此方法以允许 ActionScript 代码细化同级对同级发布的访问控制。以下代码显示一个如何创建此方法的回调函数的示例:

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

如果同级发行者不实现此方法,则允许所有同级播放已发布的任何内容。

参数

subscriber:NetStream

返回
Boolean

pause

()方法 
public function pause():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

暂停视频流的播放。如果视频已经暂停,则调用此方法将不会执行任何操作。要在暂时视频后恢复播放,请调用 resume()。要在暂停和播放之间切换(先暂停视频,然后恢复),请调用 togglePause()

从 Flash Player 9.0.115.0 开始,在调用 NetStream.pause() 时,Flash Player 不再清除缓冲区。此行为称为“智能暂停”。在 Flash Player 9.0.115.0 之前,恢复播放之前 Flash Player 将等待缓冲区填满,这通常会导致延迟。

注意:针对向后兼容,"NetStream.Buffer.Flush" 事件(请参阅 NetStatusEvent.info 属性)仍然激发,尽管服务器不刷新缓冲区。

对于一次暂停,NetStream.bufferLength 属性的限值为 60 秒或二倍的 NetStream.bufferTime 值(取二者之中的较大值)。例如,如果 bufferTime 为 20 秒,在 NetStream.bufferLength 为较大值 20*2 (40) 或 60 之前,Flash Player 将一直进行缓冲,因此在本例中,在 bufferLength 为 60 之前,Flash Player 将一直进行缓冲。如果 bufferTime 为 40 秒,在 bufferLength 为较大值 40*2 (80) 或 60 之前,则 Flash Player 将一直进行缓冲,因此在本例中,在 bufferLength 为 80 秒之前,Flash Player 将一直进行缓冲。

bufferLength 属性还有一个绝对限制。如果对 pause() 的任何调用导致 bufferLength 增大到 600 秒以上或 bufferTime * 2 的值(取二者中的较大值),Flash Player 将刷新缓冲区并将 bufferLength 重置为 0。例如,如果 bufferTime 为 120 秒,当 bufferLength 达到 600 秒时,Flash Player 将刷新缓冲区;如果 bufferTime 为 360 秒,当 bufferLength 达到 720 秒时,Flash Player 将刷新缓冲区。

提示:例如,在查看器监视商用版的同时,可以在代码中使用 NetStream.pause() 来缓冲数据,然后在开始播放主视频时取消暂停。

相关 API 元素

play

()方法 
public function play(... arguments):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

从本地目录或 Web 服务器播放媒体文件;从 Flash Media Server 播放媒体文件或实时流。调度 NetStatusEvent 对象,以报告状态和错误消息。

有关支持的编解码器和文件格式的信息,请参阅下面的内容:

播放文件或实时流的工作流程

  1. 创建一个用来显示视频的 Video 对象,然后调用 addChild() 将其添加到舞台。
  2. 创建 NetConnection 对象并调用 NetConnection.connect()

    要从本地目录或 Web 服务器播放文件,可传递 null。

    要从 Flash Media Server 播放录制的文件或实时流,可传递 Flash Media Server 应用程序的 URI。

  3. 调用 NetConnection 对象的 addEventListener() 方法来侦听 netStatus (NetStatusEvent.NET_STATUS) 事件。
  4. "NetConnection.Connect.Success" 创建 NetStream 对象,并将 NetConnection 对象传递给构造函数。
  5. 调用 Video 对象的 attachNetStream() 方法并传递 NetStream 对象。
  6. 调用 NetStream 对象的 play() 方法。

    要播放实时流,可对传递到 NetStream.publish() 方法的流名称进行传递。

    要播放录制文件,可传递该文件名。

注意:最好的方法是您应始终将 Video 对象添加到舞台,然后将 NetStream 附加到它,然后调用 NetStream 对象的 play() 方法。

启用数据生成模式

调用 play(null) 以启用“数据生成模式”。在此模式下,调用 appendBytes() 方法,将数据传送到 NetStream。使用“数据生成模式”通过 HTTP 从 Apache HTTP 服务器上的 Adobe HTTP 动态流原始模块流式传输内容。HTTP 动态流允许客户端快速搜索文件中的任意点。Open Source Media Framework (OSMF) 支持视频点播和实时流的 HTTP 动态流。有关如何使用 NetStream 数据生成模式的示例,请下载 OSMF 源。有关 HTTP 动态流的详细信息,请参阅 HTTP 动态流

在不使用 Flash Media Server 的情况下使用此方法时,有一些安全注意事项。受信任的本地沙箱或只能与远程内容交互的沙箱中的 文件可以加载并播放远程沙箱中的视频文件,但如果没有以 URL 策略文件的形式进行显式许可,则无法访问该远程文件的数据。此外,还可以在包含 SWF 内容的 HTML 页中设置 objectembed 标签的 allowNetworking 参数,以防止在 Flash Player 中运行的 SWF 文件使用此方法。有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:安全性

参数

... arguments

播放本地文件

媒体文件的位置。参数可以是字符串、URLRequest.url 属性或引用这二者之一的变量。在 Flash Player 以及应用程序安全沙箱以外的 AIR 内容中,您可以播放与 SWF 文件存储在同一个目录或位于其子目录中的本地视频文件,但是不能导航至更高级别的目录中。

播放 Flash Media Server 中的文件

名称必需说明
name:Object必需 录制的文件的名称、NetStream.publish() 发布的实时数据的标识符或 false。如果为 false,流将停止播放并忽略任何其他参数。有关文件名语法的详细信息,请参阅此表后面的文件格式表。
start:Number可选 开始时间(以秒为单位)。允许的值为 -2、-1、0 或正数。默认值为 -2,它先查找实时流,然后查找录制流,如果都没有找到,则打开实时流。不能对 MP3 文件使用 -2。如果为 -1,则只播放实时流。如果为 0 或正数,则播放录制流,从第 start 秒开始。
len:Number 如果指定了 start,则是可选的。 播放持续时间(以秒为单位)。允许的值为 -1、0 或正数。默认值为 -1,它一直播放完实时流或录制流。如果为 0,则播放距录制流开始处 start 秒的单个帧。如果为正数,则播放实时流或录制流 len 秒。
reset:Object 如果指定了 len,则是可选的。 是否清除播放列表。默认值为 1 或 true,它清除任何以前的 play 调用并立即播放 name。如果为 0 或 false,则将流添加到播放列表中。如果为 2,则将播放列表保持不变,并同时返回所有流消息,而不是分段返回。如果为 3,则清除播放列表,并同时返回所有流消息。

可以播放下表中所列的文件格式。语法将随文件格式的不同而不同。

文件格式语法示例
FLV以字符串形式指定流名称(在“samples”目录中),不带文件扩展名。ns.play("samples/myflvstream");
mp3 或 ID3使用前缀 mp3:id3: 以字符串形式指定流名称(在“samples”目录中),不带文件扩展名。

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

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

基于 MPEG-4 的文件(如 F4V 和 MP4)使用前缀 mp4: 以字符串形式指定流名称(在“samples”目录中)。该前缀向服务器表明文件包含 H.264 编码的视频和 AAC 编码的音频(在 MPEG-4 第 14 部分容器格式内)。如果服务器上的文件有文件扩展名,请指定它。

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

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

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

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

RAW使用前缀 raw: 以字符串形式指定流名称(在“samples”目录中)ns.play("raw:samples/myvideo");

启用数据生成模式

要启用“数据生成模式”,请将 null 值传递给在已连接到 null 的 NetConnection 上创建的 NetStream。在此模式下,调用 appendBytes() 以将数据传送到 NetStream。(传递 null 还将重置 onSeekPoint() 回调的字节计数器。)

AIR 3.0 for iOS 中 H.264 视频的特别注意事项

对于 H.264 视频,用于视频播放的 iOS API 仅接受指向文件或流的 URL。无法将 H264 视频数据传入缓冲区进行解码。请根据您的视频源,按如下所示将适当的参数传递到 NetStream.play()

  • 对于渐进式播放:传递文件(本地或远程)的 URL。

  • 对于流式视频:以 Apple 的 HTTP Live Streaming (HLS) 格式传递播放列表的 URL。此文件可以由任何服务器托管;使用 Flash Media Server 4.5 和更高版本编码 HLS 格式的流更有优势。


事件
status:StatusEvent — 在尝试播放用数字权限管理 (DRM) 加密的内容时调度。code 属性的值为 "DRM.encryptedFLV"

引发
SecurityError — 本地不受信任的 SWF 文件无法与 Internet 通信。您可以通过将此 SWF 文件重新分类为只能与远程内容交互或受信任来消除此限制。
 
ArgumentError — 至少必须指定一个参数。
 
Error — NetStream 对象无效。这可能是由于失败的 NetConnection 造成的。

相关 API 元素


示例  ( 如何使用本示例 )
Flash Media Server 此示例从“samples”目录播放录制的 F4V 文件,从头开始播放,持续 100 秒。对于 MPEG-4 文件,如果服务器上的文件包含文件名扩展,则 play() 方法必须指定一个文件名扩展。
     ns.play("mp4:samples/record1.f4v", 0, 100, true);
     
Flash Media Server 此示例将从头到尾播放由客户端发布的实时 FLV 流,立即开始:
     ns.play("livestream");
     

以下示例显示如何加载外部 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

()方法 
public function play2(param:NetStreamPlayOptions):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

使用多比特率在文件间无缝切换,并允许 NetStream 在连接断开并重新连接后继续。

此方法是 NetStream.play() 的增强版。与 play() 方法类似,play2() 方法开始播放媒体文件或对媒体文件进行排队以创建播放列表。在将此方法用于 Flash Media Server 时,它还可以请求服务器切换到不同的媒体文件。此过渡在客户端应用程序中以无缝方式进行。下列功能使用 play2() 流切换:

动态流

动态流(在 Flash Media Server 3.5 和更高版本中支持)让您能够提供用多比特率编码的流。当查看器的网络状况更改时,它们获得可提供最佳查看体验的比特率。使用 NetStreamInfo 类可监视网络状况并根据数据切换流。还可以为功能不同的客户端切换流。有关详细信息,请参阅《Adobe Flash Media Server 开发人员指南》中的“动态流”

Adobe 构建了一个称为 DynamicStream 的自定义 ActionScript 类,该类扩展了 NetStream 类。可以使用 DynamicStream 类在应用程序中实现动态流,而不必自行编写代码来检测网络状况。即使决定自行编写动态流代码,也请将 DynamicStream 类用作引用实现。可从 Flash Media Server 工具及下载页下载该类和类文档。

流重新连接

流重新连接(在 Flash Media Server 3.5.3 和更高版本中支持)让用户获得不间断的媒体体验,即使在用户丢失连接时也是如此。当 ActionScript 逻辑重新连接到 Flash Media Server 时,媒体使用缓冲进行播放。重新连接后,调用 NetStream.attach() 以使用与新的 NetConnection 相同的 NetStream 对象。使用 NetStream.attach()NetStreamPlayTransitions.RESUMENetStreamPlayTrasitions.APPEND_AND_WAIT API 重新连接流。有关详细信息,请参阅 Flash Media Server 3.5.3 文档

参数

param:NetStreamPlayOptions

相关 API 元素

preloadEmbeddedData

()方法 
public function preloadEmbeddedData(param:NetStreamPlayOptions):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.5, Flash Lite 4

从本地存储的媒体文件中提取任何 DRM 元数据。

使用 preloadEmbeddedMetaData() 作为下载和缓存脱机播放所需的 DRM 凭证的第一步。在媒体文件中检测到嵌入的 DRM 元数据时,将向 NetStream client 的 onDRMContentData 函数传递一个 DRMContentData 对象。此 DRMContentData 对象包含获取凭证所需的信息,在播放内容时需要该凭证。将 DRMContentDataObject 对象传递给 DRMManager loadVoucher() 方法,以下载凭证。

预加载 DRM 凭证的步骤包括:

  • 新建一个 NetStream 对象用于预加载元数据。

  • 将一个回调函数赋给 NetStream clientonDRMContentData 属性。
  • 新建一个 NetStreamPlayOptions 对象,并将其 streamName 属性设置为本地视频文件的 URL 字符串。
  • 调用 preloadEmbeddedMetadata(),同时传入 NetStreamPlayOptions 对象。
  • 作为对 onDRMContentData 回调的响应,调用 DRMManager loadVoucher() 方法,同时传入 DRMContentData 对象。如果 DRMContentData 对象的 authenticationMethod 属性的值为 userNameAndPassWord,则在加载凭证之前在媒体权限服务器上验证用户的身份。
  • 关闭用于预加载的 NetStream。

注意:要使用同一个 NetStream 对象预加载元数据和播放内容,则在开始播放前需要等待预加载操作生成 onPlayStatus 调用。

下载的凭证存储在本地缓存中。在线播放内容也会下载和缓存凭证。在查看受 DRM 保护的内容文件时,将自动从本地存储区检索缓存的凭证。使用 DRMManager 可管理凭证缓存。

注意:不支持通过 HTTP、HTTPS 或 RTMP 连接预加载 DRM 元数据。只能从文件系统上存储的文件预加载元数据。

参数

param:NetStreamPlayOptions — 描述在处理内容文件期间要使用的选项的 NetStreamPlayOptions。

相关 API 元素

publish

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

将流音频、视频和数据消息从客户端发送到 Flash Media Server,可以选择在传输期间录制此流。此方法使用与流有关的信息调度 NetStatusEvent 对象。调用 NetStream.publish() 之前,请捕获 "NetConnection.Connect.Success" 事件以验证应用程序已成功连接到 Flash Media Server。

发布时,可以用 FLV 或 F4V 格式录制文件。如果录制 F4V 格式的文件,可使用 flattener 工具在另一个应用程序中编辑或播放该文件。要下载此工具,请参阅 www.adobe.com/go/fms_tools_cn

注意:不要使用此方法播放流。要播放流,请调用 NetStream.play() 方法。

发布流的工作流程

  1. 创建 NetConnection 对象并调用 NetConnection.connect()
  2. 调用 NetConnection.addEventListener(),以便侦听 NetStatusEvent 事件。
  3. "NetConnection.Connect.Success" 事件创建 NetStream 对象,然后将 NetConnection 对象传递给构造函数。
  4. 要捕获音频和视频,请调用 NetStream.attachAudio() 方法和 NetStream.attachCamera() 方法。
  5. 要发布流,请调用 NetStream.publish() 方法。您可以在发布数据时进行录制,以便用户可以在以后播放该数据。

注意:NetStream 可以发布流或播放流,但不能同时执行这两个操作。要发布流,请从服务器查看播放,创建两个 NetStream 对象。通过一个 NetConnection 对象可以发送多个 NetStream 对象。

Flash Media Server 录制流时,会创建一个文件。默认情况下,服务器会使用传递给 NetConnection.connect() 的应用程序实例名称创建一个目录,并将文件存储在该目录中。例如,下面的代码连接到“lectureseries”应用程序的默认实例,并录制“lecture”流。文件“lecture.flv”录制到 applications/lectureseries/streams/_definst_ 目录下:

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

下面的示例连接到同一应用程序的“monday”实例。文件“lecture.flv”录制到 /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");
       }
     }
     

参数

name:String (default = null) — 标识该流的字符串。订阅此流的客户端将在调用 NetStream.play() 时传递此名称。流名称后面不要跟“/”。例如,不要使用流名称“bolero/”。

可以使用下表中所述的格式记录文件(不可以将 publish() 用于 MP3 格式文件)。语法将随文件格式的不同而不同。

文件格式语法示例
FLV以字符串形式指定流名称,不带文件扩展名。ns.publish("myflvstream");
基于 MPEG-4 的文件(如 F4V 和 MP4)以字符串形式指定流名称,带有前缀 mp4:,带有或不带文件扩展名。Flash Player 使用 H.263 而不是 H.264 进行编码。Flash Media Server 可以录制 F4V 容器中的任何编解码器。Flash Media Live Encoder 可以使用 H.264 进行编码。 ns.publish("mp4:myvideo.f4v") ns.publish("mp4:myvideo");
RAW使用前缀 raw: 以字符串形式指定流名称ns.publish("raw:myvideo");

 
type:String (default = null) — 用于指定如何发布该流的字符串。有效值是“record”、“append”、“appendWithGap”和“live”。默认值为“live”。
  • 如果传递“record”,则服务器将发布并录制实时数据,同时将录制的数据保存到名称与传递给 name 参数的值相匹配的新文件中。如果该文件存在,则覆盖该文件。
  • 如果传递“append”,则服务器将发布并录制实时数据,同时将录制的数据附加到名称与传递给 name 参数的值相匹配的文件中。如果未找到与 name 参数相匹配的文件,则创建一个文件。
  • 如果您传递“appendWithGap”,则会传递关于时间协调的其他信息,以帮助服务器在动态流式处理时确定正确的转换点。
  • 如果省略此参数或传递“live”,则服务器将发布实时数据而不进行录制。如果存在名称与传递给 name 参数的值相匹配的文件,则删除它。

相关 API 元素


示例  ( 如何使用本示例 )

下面的示例从摄像头捕获视频并通过 NetStream 将其发布到 Flash Media Server。本示例在从 Flash Media Server 播放视频时显示该视频。

要运行此示例,需要在计算机上连接摄像头。还需要向库中添加 Button 组件和 Label 组件。

只有应用程序成功连接到服务器之后,应用程序才会具有发布流(将其发送到 Flash Media Server)的按钮。只有成功发布流之后,应用程序才会播放来自服务器的流。NetStatusEvent 返回具有 code 属性的 info 对象,用于指定上述情况。netStatusHandler 函数为 NetConnection 和 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

()方法 
public function receiveAudio(flag:Boolean):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

指定传入的音频是否在流上播放。此方法仅供订阅了指定流的客户端使用。它对流的发布者不可用。在您调用 NetStream.play() 方法前后调用此方法。例如,将此方法附加到按钮以允许用户对音频静音和取消静音。仅对从 Flash Media Server 播放的单播流使用此方法。对于 RTMFP 多播流或当使用 NetStream.appendBytes() 方法时,此方法不起作用。

参数

flag:Boolean — 指定传入音频是在流上播放 (true) 还是不播放 (false)。默认值为 true。如果指定的流仅包含音频数据,则当您传递 false 时,NetStream.time 停止递增。

receiveVideo

()方法 
public function receiveVideo(flag:Boolean):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

指定传入的视频是否在流上播放。此方法仅供订阅了指定流的客户端使用。它对流的发布者不可用。在您调用 NetStream.play() 方法前后调用此方法。例如,将此方法附加到按钮以允许用户显示和隐藏视频。仅对从 Flash Media Server 播放的单播流使用此方法。对于 RTMFP 多播流或当使用 NetStream.appendBytes() 方法时,此方法不起作用。

参数

flag:Boolean — 指定传入视频是在此流上播放 (true) 还是不播放 (false)。默认值为 true。如果指定的流仅包含视频数据,则当您传递 false 时,NetStream.time 停止递增。

receiveVideoFPS

()方法 
public function receiveVideoFPS(FPS:Number):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

指定传入视频的帧速率。此方法仅供订阅了指定流的客户端使用。它对流的发布者不可用。在您调用 NetStream.play() 方法前后调用此方法。例如,调用此方法以允许用户设置视频帧速率。要确定当前帧速率,请使用 NetStream.currentFPS。要停止接收视频,请传递 0

当您将值传递到 FPS 参数以限制视频的帧速率时,Flash Media Server 尝试降低帧速率,同时保留视频的完整性。在每二个关键帧之间,服务器发送满足合适速率所需的最小帧数量。请注意 I 帧(或中间帧)必须连续发送,否则视频会损坏。因此,在关键帧后需要立即连续发送需要的帧数。由于各个帧不是均匀分布的,因此在由于中断而截断的部分中,动作仍会平滑地显示。

仅对从 Flash Media Server 播放的单播流使用此方法。对于 RTMFP 多播流或当使用 NetStream.appendBytes() 方法时,此方法不起作用。

参数

FPS:Number — 指定播放传入视频的每秒帧速率。

resetDRMVouchers

()方法 
public static function resetDRMVouchers():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 11.8, Flash Lite 4

在 AIR 应用程序中,这将删除所有本地缓存的数字权限管理 (DRM) 凭证数据。对基于浏览器的应用程序,它仅在发生 3322 错误时才可用,并且其行为类似于“受保护内容播放设置”面板

应用程序必须从媒体权限服务器重新下载任何必要的凭证,用户才能访问受保护的内容。调用此函数等同于调用 DRMManager 对象的 resetDRMVouchers() 函数。


引发
IOError — 无法删除凭证数据。

相关 API 元素


示例  ( 如何使用本示例 )

下例重置所有 DRM 凭证:
NetStream.resetDRMVouchers();

resume

()方法 
public function resume():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

恢复播放暂停的视频流。如果视频已在播放,则调用此方法将不会执行任何操作。

相关 API 元素

seek

()方法 
public function seek(offset:Number):void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

搜索与指定位置最接近的关键帧(在视频行业中也称为 I 帧)。关键帧位于从流的开始处算起的偏移位置(以秒为单位)。

视频流通常是使用以下两种类型的帧进行编码的:关键帧(或 I 帧)和 P 帧。关键帧包含完整图像;而 P 帧是一个中间帧,它在两个关键帧之间提供额外的视频信息。通常,视频流每 10 到 50 帧中有一个关键帧。

Flash Media Server 具有多种搜索行为:增强型搜索和智能搜索。

增强型搜索

默认情况下启用增强型搜索。要禁用增强型搜索,请在 Flash Media Server 上将 Application.xml 配置文件中的 EnhancedSeek 元素设置为 false

如果启用了增强型搜索,服务器将基于前一个关键帧和任何中间的 P 帧在 offset 位置生成一个新的关键帧。但是,生成关键帧将导致服务器上的处理负载很高,并且生成的关键帧中可能发生失真。如果视频编解码器为 On2,则会将搜索点之前的关键帧以及该关键帧和搜索点之间的所有 P 帧发送到客户端。

如果禁用了增强型搜索,服务器将开始从最近关键帧进行流式播放。例如,假设视频在第 0 秒和第 10 秒处各有一个关键帧。则搜索第 4 秒将导致使用 0 秒处的关键帧在第 4 秒处开始播放。在到达下一个关键帧(在第 10 秒处)之前,视频将保持冻结。为了获得更好的搜索体验,您需要缩短关键帧间隔。在标准搜索模式下,无法在两个关键帧之间的位置启动视频。

智能搜索

要启用智能搜索,请将 NetStream.inBufferSeek 设置为 true

智能搜索允许 Flash Player 在现有后退缓冲和前进缓冲内进行搜索。如果禁用智能搜索,每次调用 seek() 时,Flash Player 将刷新缓冲并从服务器请求数据。有关详细信息,请参阅 NetStream.inBufferSeek

在数据生成模式下搜索

对处于数据生成模式的 NetStream 调用 seek() 时,将丢弃随后传递给 appendBytes() 的所有字节(即,未放置在缓冲区中、在部分消息 FIFO 中积累或对搜索点解析的字节),直到您调用 appendBytesAction(NetStreamAppendBytesAction.RESET_BEGIN)appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK) 以重置该解析程序。有关数据生成模式的信息,请参阅 NetStream.play()

参数

offset:Number — 要在视频文件中移动到的时间近似值(以秒为单位)。使用 Flash Media Server 时,如果在 Application.xml 配置文件中将 <EnhancedSeek> 设置为 true(这是默认设置),服务器将在 offset 位置生成一个关键帧。
  • 要返回到该流的开始处,请将 0 传递给 offset
  • 要从流的开始处向前搜寻,应传递将要前进的秒数。例如,要将播放头放在距开始处 15 秒的位置(或 15 秒之前的关键帧),请使用 myStream.seek(15)
  • 要搜索当前位置的相对位置,请传递 NetStream.time + nNetStream.time - n,以分别从当前位置向前或向后搜索 n 秒的位置。例如,要从当前位置后退 20 秒,请使用 NetStream.seek(NetStream.time - 20)

相关 API 元素

send

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9

在发布的流上向所有订阅客户端发送一条消息。此方法仅供指定流的发布者使用。此方法仅可用于 Flash Media Server。要处理并响应该消息,请在 NetStream 对象上创建一个处理函数,例如,ns.HandlerName

Flash Player 或AIR 不对方法或方法的数据、对象原型变量或不可枚举的变量进行序列化处理。对于显示对象,Flash Player 或 AIR 仅对路径而不对数据进行序列化处理。

您可以调用 send() 方法,将数据关键帧添加到已发布到 Flash Media Server 的实时流中。数据关键帧是发布者添加到实时流中的消息。通常,在从摄像头和麦克风为实时流捕获数据之前,使用数据关键帧将元数据添加到该流中。在发布实时流期间,发布者可以随时添加数据关键帧。只要发布者连接到服务器上,就会将数据关键帧保存在服务器的内存中。

如果客户端是在添加数据关键帧之前订阅实时流的,则会在添加后立即收到该关键帧。如果客户端是在添加数据关键帧之后订阅实时流的,则会在订阅时收到该关键帧。

要将元数据关键帧添加到发送给 Flash Media Server 的实时流中,请使用 @setDataFrame 作为处理函数名称,后跟两个其他参数,例如:

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

@setDataFrame 参数引用 Flash Media Server 中内置的一个特殊处理函数。onMetaData 参数是客户端应用程序中侦听 onMetaData 事件并检索元数据的回调函数的名称。第三项 metaData 是包含用于定义元数据值的属性的 ObjectArray 实例。

可以使用 @clearDataFrame 清除已在流中设置的元数据关键帧:

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

参数

handlerName:String — 要发送的消息;还有用于接收消息的 ActionScript 处理函数的名称。处理函数的名称只能为单级形式(即不能是父/子多级形式)并相对于流对象。不要对处理函数名称使用保留字。例如,将“close”用作处理函数名称将导致方法失败。如果使用 Flash Media Server,请使用 @setDataFrame 将元数据关键帧添加到实时流中,或者使用 @clearDataFrame 删除关键帧。
 
... arguments — 可以是任何类型的可选参数。它们经过序列化并通过该连接发送,而接收处理函数则以相同的顺序接收它们。如果某个参数为循环对象(如循环的链接列表),则序列化函数可以正确处理引用。使用 Flash Media Server 时,如果 @setDataFrame 是第一个参数,请使用 onMetaData 作为第二个参数;对于第三个参数,请传递将元数据设置为属性的 ObjectArray 实例。有关建议的属性名称的列表,请参阅《Flash Media Server 开发人员指南》。如果将 @clearDataFrame 作为第一个参数,请使用 onMetaData 作为第二个参数,而不使用第三个参数。

相关 API 元素


示例  ( 如何使用本示例 )

下面的示例创建两个 NetStream 对象。一个对象用于将实时流发布到服务器上;另一个对象用于订阅该流。
package {
   import flash.display.Sprite;
   import flash.net.NetConnection;
   import flash.net.NetStream;
   import flash.events.NetStatusEvent;
   import flash.media.Video;
   import flash.utils.setTimeout;

 
   public class TestExample extends Sprite
   {
     var nc:NetConnection = new NetConnection();
     var ns1:NetStream;
     var ns2:NetStream;
     var vid:Video = new Video(300,300);
     var obj:Object = new Object();
 
     public function TestExample() {
        nc.objectEncoding = 0;
        nc.addEventListener("netStatus", onNCStatus);
        nc.connect("rtmp://localhost/FlashVideoApp");
        addChild(vid); 
     }
  
     function onNCStatus(event:NetStatusEvent):void {
       switch (event.info.code) {
           case "NetConnection.Connect.Success":
               trace("You've connected successfully");
               ns1 = new NetStream(nc);
               ns2 = new NetStream(nc);
               
               ns1.client = new CustomClient();
               ns1.publish("dummy", "live");
    
               ns2.client = new CustomClient();
               vid.attachNetStream(ns2);
               ns2.play("dummy");
               setTimeout(sendHello, 3000);
               break;
              
           case "NetStream.Publish.BadName":
               trace("Please check the name of the publishing stream" );
               break;
        }   
     }

     function sendHello():void {
         ns1.send("myFunction", "hello");
     }       
   }
 }
 
 class CustomClient {
    public function myFunction(event:String):void {
       trace(event);
    }
 }

下面的示例创建元数据,并将其添加到实时流中:
private function netStatusHandler(event:NetStatusEvent):void {
     switch (event.info.code) {  
        case "NetStream.Publish.Start":
            var metaData:Object = new Object();
            metaData.title = "myStream";
            metaData.width = 400;
            metaData.height = 200;
            ns.send("@setDataFrame", "onMetaData", metaData);
            ns.attachCamera( Camera.getCamera() );
            ns.attachAudio( Microphone.getMicrophone() );        
    }
}

为了响应添加到视频中的数据关键帧,客户端需要定义 onMetaData 事件处理函数。onMetaData 事件处理函数不是使用 addEventListener() 注册的,而是一个具有名称 onMetaData 的回调函数,例如:
 public function onMetaData(info:Object):void {
    trace("width: " + info.width);
    trace("height: " + info.height);
 }

下面的示例说明如何在服务器上创建播放列表:
 // Create a NetStream for playing
 var my_ns:NetStream = new NetStream(my_nc);
 my_video.attachNetStream(my_ns);
 
 // Play the stream record1
 my_ns.play("record1", 0, -1, true);
 
 // Switch to the stream live1 and play for 5 seconds.  
 // Since reset is false, live1 will start to play after record1 is done.
 my_ns.play("live1", -1 , 5, false);

如果录制的视频文件只包含数据消息,您可以按最初录制视频文件时的速度进行播放,也可以同时获取所有数据消息。
 //To play at normal speed
 var my_ns:NetStream = new NetStream(my_nc);
 my_ns.play("log", 0, -1);
 
 //To get the data messages all at once
 my_ns.play("log", 0, -1, 3);

setDRMAuthenticationCredentials

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

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Lite 4

设置查看基础加密内容所需要的 DRM 身份验证凭据。

setDRMAuthenticationCredentials() 方法提供的凭据与内容提供程序或代理服务器已知并接受的凭据相匹配。这些凭据与用户获取权限以查看内容时使用的凭据相同。

参数

userName:String — 有效的用户名凭据。
 
password:String — 与提供的用户名对应的密码凭据。
 
type:String — 一个字符串,指定提供哪种类型的身份验证凭据。有效值为“drm”“proxy”。默认值为“drm”
  • 使用 "drm" 身份验证类型时,将针对 Flash Access 对提供的凭据进行身份验证。
  • 使用“proxy”身份验证类型时,提供的凭据将针对代理服务器进行身份验证且必须与代理服务器所需的凭据相匹配。例如,“proxy”选项允许应用程序针对代理服务器进行身份验证(如果企业要求用户通过此步骤后才能访问 Internet)。除非使用匿名身份验证,否则在代理身份验证之后,用户仍需要针对 Flash Access 进行身份验证才能获取凭证并播放内容。您可以再次与 "drm" 选项一起使用 setDRMAuthenticationcredentials() 以针对 Flash Access 进行身份验证。

相关 API 元素

step

()方法 
public function step(frames:int):void

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2

前进或后退(相对于当前显示的帧)指定帧数的步骤。指定一个正数前进一步,指定一个负数后退一步。调用此方法以创建准确快速的快进或后退功能。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此方法。

只有数据流来自 Flash Media Server 3.5.3 或更高版本,并且 NetStream.inBufferSeektrue 时,此方法才可用。此外,目标帧必须位于缓冲区内。例如,如果当前显示的帧的帧编号为 120 且您指定值 1000,则如果帧编号 1120 不在缓冲区内,此方法将失败。

此方法计划是与 pause()togglePause() 方法结合使用。如果在播放期间不停顿地向前或向后跳过 10 帧,您可能不会注意到这些步骤,或者这些步骤看起来像是个小故障。此外,在调用 pause()togglePause 时,会禁止音频。

如果调用 NetStream.step() 成功,则会将“NetStream.Step.Notify”用作 info 对象的 code 属性的值来发送 NetStatusEvent。

参数

frames:int

相关 API 元素

togglePause

()方法 
public function togglePause():void

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

暂停或恢复流的播放。第一次调用此方法时,将暂停播放;下一次调用此方法时,将恢复播放。您可以使用此方法,允许用户通过按某个按钮来暂停或恢复播放。

相关 API 元素

事件详细信息

asyncError

事件
事件对象类型: flash.events.AsyncErrorEvent
属性 AsyncErrorEvent.type = flash.events.AsyncErrorEvent.ASYNC_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在异步引发异常(即来自本机异步代码)时调度。当服务器调用客户端上未定义的方法时调度此事件。

AsyncErrorEvent.ASYNC_ERROR 常数定义 asyncError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target调度事件的对象。
error触发此事件的错误。

相关 API 元素

drmAuthenticate

事件  
事件对象类型: flash.events.DRMAuthenticateEvent
属性 DRMAuthenticateEvent.type = flash.events.DRMAuthenticateEvent.DRM_AUTHENTICATE

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Lite 4

在 NetStream 对象尝试播放使用数字权限管理 (DRM) 加密的内容(播放前需要用户凭据以进行身份验证)时调度。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

使用 NetStream 对象的 setDRMAuthenticationCredentials() 方法对用户进行身份验证。如果用户身份验证失败,则应用程序将重新尝试身份验证并为 NetStream 对象调度一个新的 DRMAuthenticateEvent 事件。

DRMAuthenticateEvent.DRM_AUTHENTICATE 常量定义 DRMAuthenticateEvent 对象的 type 属性的值。

此事件具有以下属性:

属性
authenticationType表示提供的凭据是用于针对 Flash Media Rights Management Server (FMRMS) 的身份验证,还是用于针对代理服务器的身体验证。
bubblesfalse
cancelablefalse 表示没有要取消的默认行为。
header服务器提供的加密内容文件标头。
netstream启动此事件的 NetStream 对象。
passwordPrompt服务器提供的密码凭据提示。
targetNetStream 对象。
urlPrompt服务器提供的要显示的 URL 提示。
usernamePrompt服务器提供的用户名凭据提示。

相关 API 元素

drmError

事件  
事件对象类型: flash.events.DRMErrorEvent
属性 DRMErrorEvent.type = flash.events.DRMErrorEvent.DRM_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 10.1, Flash Lite 4

在 NetStream 对象尝试播放数字权限管理 (DRM) 加密的文件的过程中遇到与 DRM 相关的错误时调度。例如,用户身份验证失败时,将调度 DRMErrorEvent 对象。这可能是由于用户没有购买查看内容的权限或者是由于内容提供程序不支持执行查看的应用程序。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

DRMErrorEvent.DRM_ERROR 常量定义 drmError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
errorID分配给问题的数字错误代码。
subErrorID表示有关基本问题的更多详细信息的错误代码。
targetNetStream 对象。

相关 API 元素

drmStatus

事件  
事件对象类型: flash.events.DRMStatusEvent
属性 DRMStatusEvent.type = flash.events.DRMStatusEvent.DRM_STATUS

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 10.1, Flash Lite 4

在开始播放数字权限管理 (DRM) 加密的内容时(如果已对用户进行身份验证并授权播放该内容)调度。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

DRMStatusEvent 对象包含与凭证有关的信息,如是否可以脱机使用该内容或凭证何时过期而用户无法再查询该内容。

DRMStatusEvent.DRM_STATUS 常量定义 drmStatus 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
detail说明状态事件上下文的字符串。
isAnonymous表示使用 DRM 加密保护的内容是否可用而不需要用户提供身份验证凭据。
isAvailableOffline表示使用 DRM 加密保护的内容是否可脱机使用。
offlineLeasePeriod可以脱机查看内容的剩余天数。
policiesDRM 状态事件的自定义对象。
targetNetStream 对象。
voucherEndDate凭证的绝对到期日期,此后,用户将无法再查看该内容
contentData内容的 DRMContentData
voucher内容的 DRMVoucher 对象。
isLocal表示内容是否存储在本地文件系统上

相关 API 元素

ioError

事件  
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在出现输入或输出错误并导致网络操作失败时调度。

定义 ioError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
errorID与特定错误关联的引用编号(仅限 AIR)。
target发生输入/输出错误的网络对象。
text要显示为错误消息的文本。

mediaTypeData

事件  
事件对象类型: flash.events.NetDataEvent
属性 NetDataEvent.type = flash.events.NetDataEvent

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.3, AIR 2.7

播放视频内容和处理某种类型的消息时调度。

对于以下消息调度 NetDataEvent:

  • onCuePoint
  • onImageData
  • onMetaData
  • onPlayStatus(用于代码 NetStream.Play.Complete)
  • onTextData
  • onXMPData

注意:Android 或 Blackberry Tablet OS 上的浏览器的 Flash Player 中运行的内容或 iOS 上的 AIR 中运行的内容不会调度此事件。

netStatus

事件  
事件对象类型: flash.events.NetStatusEvent
属性 NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在 NetStream 对象报告其状态或错误条件时调度。netStatus 事件包含一个 info 属性,该属性是一个包含有关事件特定信息(例如连接尝试成功还是失败)的信息对象。

定义 netStatus 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
info一个对象,具有描述对象的状态或错误条件的属性。
target报告其状态的 NetConnection 或 NetStream 对象。

相关 API 元素

onCuePoint

事件  

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在播放视频文件期间到达嵌入提示点时建立侦听器进行响应。在视频到达某个特定提示点时,您可以使用此侦听器触发代码中的操作,从而使应用程序中的其他操作与视频播放事件实现同步。有关 Flash Media Server 支持的视频文件格式的信息,请参阅 www.adobe.com/go/learn_fms_fileformats_cn

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

onCuePoint 实际上是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,因为它在流媒体使用 Flash Media Server 时或在 FLV 文件播放过程中响应数据事件。有关详细信息,请参阅 NetStream 类的描述。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法将 onCuePoint 作为事件进行侦听或处理。定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

关联的事件侦听器在调用 NetStream.play() 方法之后、在视频播放头前进之前触发。

您可以在视频文件中嵌入下列类型的提示点:

  • 导航提示点,它指定视频文件中的一个关键帧,而且其 time 属性对应于该关键帧。导航提示点经常被用作书签或入口点,以便用户在视频文件中导航。
  • 一个事件提示点指定一个时间。此时间可能与某个特定的关键帧对应,也可能不对应。事件提示点通常代表视频中的某个时间,到达这个时间时可用于触发其他应用程序事件的情况就会发生。

onCuePoint 事件对象具有以下属性:

属性说明
name将提示点嵌入视频文件时为其指定的名称。
parameters为此提示点指定的一个由名称和值对字符串组成的关联数组。任何有效的字符串都可用于参数名或参数值。
time提示点在视频文件播放期间的出现时间(以秒为单位)。
type到达的提示点的类型:导航提示点或事件提示点。

在首次对视频文件进行编码时,或者在 Flash 创作工具中使用“视频导入”向导导入视频剪辑时,您可以在该视频文件中定义提示点。

onMetaData 事件还会在视频文件中检索有关提示点的信息。不过,onMetaData 事件会在视频开始播放之前,获取有关所有提示点的信息。onCuePoint 事件会在播放期间对某个提示点所指定的时间,接收有关该提示点的信息。

通常,要让代码在特定的提示点出现时对它给予响应,请使用 onCuePoint 事件来触发代码中的某个操作。

您可以使用提供给 onMetaData 事件的提示点列表,允许用户在视频流的预定义点处开始播放视频。将提示点的 time 属性的值传递给 NetStream.seek() 方法,以便从该提示点播放视频。


示例  ( 如何使用本示例 )

以下示例说明如何加载外部 FLV 文件并响应元数据和提示点。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);
}

相关 API 元素

onDRMContentData

事件  

语言版本: ActionScript 3.0
运行时版本: AIR 1.5, Flash Lite 4

建立一个侦听器,以便在 AIR 提取媒体文件中嵌入的 DRM 内容元数据时作出响应。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

DRMContentData 对象包含获取凭证所需的信息,在播放受 DRM 保护的媒体文件时需要该凭证。使用 DRMManager 类可根据这些信息下载该凭证。

onDRMContentDataNetStream.client 对象的属性。该属性之所以在 Events 一节中列出,是因为从本地媒体文件预加载嵌入的数据时它将响应数据事件。有关详细信息,请参阅 NetStream 类的描述。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法将 onDRMContentData 作为事件进行侦听或处理。相反,您必须定义一个回调函数,并将其直接附加到以下对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。然而,您可以创建 NetStream 的子类并在其中定义您的事件处理函数,或者将该子类变为动态的并对子类的实例添加事件处理函数。

相关 API 元素

onImageData

事件  

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4

在 Flash Player 以字节数组形式接收到正在播放的媒体文件中嵌入的图像数据时建立侦听器进行响应。图像数据可以生成 JPEG、PNG 或 GIF 内容。使用 flash.display.Loader.loadBytes() 方法可以将该字节数组加载到显示对象中。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

onImageData 实际上是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,因为它在流媒体使用 Flash Media Server 时或在 FLV 文件播放过程中响应数据事件。有关详细信息,请参阅 NetStream 类的描述。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法侦听或处理 onImageData 事件。定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

关联的事件侦听器在调用 NetStream.play() 方法之后、在视频播放头前进之前触发。

onImageData 事件对象包含通过 AMF0 数据通道以字节数组形式发送的图像数据。


示例  ( 如何使用本示例 )

本示例中的代码使用 Netstream.client 属性来处理 onTextDataonImageData 的回调函数。onImageDataHandler() 函数使用 onImageData 事件对象 imageData 来存储该字节数组。而 onTextDataHandler() 函数使用 onTextData 事件对象 textData 来存储各段文本数据(每段数据都是 textData 对象的一个属性)。

您需要在代码中用位置 "yourURL" 的文本或图像元数据替换媒体文件的实际位置。

您也可以使用自定义类处理图像和文本数据。有关详细信息和示例,请参阅文章 Handling metadata and cue points in Flash video(处理 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]);
                }
            }

        }

}

相关 API 元素

onMetaData

事件  

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在 Flash Player 接收到正在播放的视频中嵌入的描述性信息时建立侦听器进行响应。有关 Flash Media Server 支持的视频文件格式的信息,请参阅 www.adobe.com/go/learn_fms_fileformats_cn

onMetaData 实际上是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,因为它在流媒体使用 Flash Media Server 时或在 FLV 文件播放过程中响应数据事件。有关详细信息,请参阅 NetStream 类的描述以及 NetStream.client 属性。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法侦听或处理 onMetaData 事件。定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。您可以创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

Flash Video Exporter 实用程序(1.1 版本或更高版本)将视频的持续时间、创建日期、数据速率及其他信息嵌入视频文件本身。不同的视频编码器嵌入不同的元数据组中。

关联的事件侦听器在调用 NetStream.play() 方法之后、在视频播放头前进之前触发。

在多数情况下,流元数据中嵌入的持续时间值接近于实际持续时间,但并不精确。换言之,当播放头在视频流的结尾处时,此值不会始终与 NetStream.time 属性的值相匹配。

传递到 onMetaData 事件处理函数的事件对象包含每段数据的一个属性。


示例  ( 如何使用本示例 )

以下示例说明如何加载外部 FLV 文件并响应元数据和提示点。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);
}

相关 API 元素

onPlayStatus

事件  

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9, Flash Lite 4

在 NetStream 对象已完全播放流时建立侦听器进行响应。关联的事件对象除了提供由 netStatus 事件返回的信息以外,还提供一些其他信息。您可以在 NetStream 对象从播放列表中的一个流切换到另一个流时(如信息对象 NetStream.Play.Switch 所示),或者在 NetStream 对象播放到结尾时(如信息对象 NetStream.Play.Complete 所示),使用此属性触发代码中的操作。

onPlayStaus 实际上是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,因为它在流媒体使用 Flash Media Server 时或在 FLV 文件播放过程中响应数据事件。有关详细信息,请参阅 NetStream 类的描述。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法将 onPlayStatus 作为事件进行侦听或处理。定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

此事件可返回一个具有以下属性的信息对象:

代码属性级别属性意义
NetStream.Play.Switch"status"订阅者正在从播放列表中的一个流切换到另一个流。
NetStream.Play.Complete"status"播放已结束。
NetStream.Play.TransitionComplete"status"应用流比特率切换之后,订户将切换到新的流

相关 API 元素

onSeekPoint

事件  

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 2, Flash Lite 4

当追加字节分析程序遇到一个它认为是可搜索的点(例如,视频关键帧)时从 appendBytes() 同步调用。使用此事件构造搜索点表。byteCount 对应于该搜索点的可解析的消息的第一个字节处的 byteCount,然后如上所述被重置为 0。要进行搜索,请在 NetStream.Seek.Notify 事件处,找到以可搜索点开始的字节,然后调用 appendBytes(bytes)。如果 bytes 参数是由从可搜索点开始的字节组成的 ByteArray,则在该搜索点处播放视频。

注意:将忽略从此回调中进行的对 appendBytes() 的调用。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

onSeekPoint 属性是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,是因为它将响应传入 appendBytes() 方法的数据。有关详细信息,请参阅 NetStream 类的描述以及 NetStream.client 属性。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法将 onSeekPoint 作为事件进行侦听或处理。要使用 onSeekPoint,请定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。然而,您可以创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

相关 API 元素

onTextData

事件  

语言版本: ActionScript 3.0
运行时版本: AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4

在 Flash Player 接收到正在播放的媒体文件中嵌入的文本数据时建立侦听器进行响应。文本数据采用 UTF-8 格式并可以包含有关基于 3GP Timed Text 规范的格式设置的信息。

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

onTextData 实际上是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,因为它在流媒体使用 Flash Media Server 时或在 FLV 文件播放过程中响应数据事件。有关详细信息,请参阅 NetStream 类的描述。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法将 onTextData 作为事件进行侦听或处理。定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

关联的事件侦听器在调用 NetStream.play() 方法之后、在视频播放头前进之前触发。

onTextData 事件对象对每段文本数据包含一个属性。


示例  ( 如何使用本示例 )

本示例中的代码使用 Netstream.client 属性来处理 onTextDataonImageData 的回调函数。onImageDataHandler() 函数使用 onImageData 事件对象 imageData 来存储该字节数组。而 onTextDataHandler() 函数使用 onTextData 事件对象 textData 来存储各段文本数据(每段数据都是 textData 对象的一个属性)。

您需要在代码中用位置 "yourURL" 的文本或图像元数据替换媒体文件的实际位置。

您也可以使用自定义类处理图像和文本数据。有关详细信息和示例,请参阅文章 Handling metadata and cue points in Flash video(处理 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]);
                }
            }

        }

}

相关 API 元素

onXMPData

事件  

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

建立一个侦听器,以便在 Flash Player 接收到特定于正在播放的视频中嵌入的 Adobe 可扩展元数据平台 (XMP) 的信息时进行响应。有关 Flash Media Server 支持的视频文件格式的信息,请参阅 www.adobe.com/go/learn_fms_fileformats_cn

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

onXMPData 实际上是 NetStream.client 对象的属性。该属性之所以在 Events 一节中列出,因为它在流媒体使用 Flash Media Server 时或在 FLV 文件播放过程中响应数据事件。有关详细信息,请参阅 NetStream 类的描述以及 NetStream.client 属性。不能使用 addEventListener() 方法或任何其他 EventDispatcher 方法侦听或处理 onMetaData 事件。定义一个回调函数并将其附加到下列对象之一:

  • NetStream 实例的 client 属性所引用的对象。
  • NetStream 子类的一个实例。NetStream 是一个密封类,即无法在运行时将属性或方法添加到 NetStream 对象。然而,您可以创建 NetStream 的子类并在其中定义您的事件处理函数。您还可以将该子类变为动态的并对子类的实例添加事件处理函数。

关联的事件侦听器在调用 NetStream.play() 方法之后、在视频播放头前进之前触发。

传递给 onXMPData() 事件处理函数的对象包含一个 data 属性,此属性是一个字符串。此字符串在顶级 UUID 框中生成。(顶级框的 128 位 UUID 为 BE7ACFCB-97A9-42E8-9C71-999491E3AFAC。)此顶级 UUID 框正好包含一个 XML 文档,该文档以 null 结尾的 UTF-8 字符串形式表示。

相关 API 元素

status

事件  
事件对象类型: flash.events.StatusEvent
属性 StatusEvent.type = flash.events.StatusEvent.STATUS

语言版本: ActionScript 3.0
运行时版本: Flash Player 10.1, AIR 1.0, Flash Lite 4

在应用程序尝试通过调用 NetStream.play() 方法播放用数字权限管理 (DRM) 加密的内容时调度。状态代码属性的值将为“DRM.encryptedFLV”

注意:AIR 3.0 for iOS 中的 H.264 视频不支持此事件。

定义 status 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
code对象状态的描述。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
level消息类别,例如 "status""warning""error"
target报告其状态的对象。

相关 API 元素

常量详细信息

CONNECT_TO_FMS

常量
public static const CONNECT_TO_FMS:String = "connectToFMS"

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

一个静态对象,用作 NetStream 实例的构造函数的参数。它是 NetStream 构造函数中的第二个参数的默认值;对于渐进式媒体播放,应用程序将不使用默认值。若使用此参数,则会导致构造函数建立与 Flash Media Server 实例的连接。

DIRECT_CONNECTIONS

常量 
public static const DIRECT_CONNECTIONS:String = "directConnections"

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5, Flash Lite 4

创建同级对同级发行者连接。将第二个(可选)参数的此字符串传递给 NetStream 实例的构造函数。利用此字符串,应用程序可以出于向客户端发布音频和视频的目的而创建 NetStream 连接。

NetConnectionExample.as

以下示例将 Video 对象与 NetConnection 和 NetStream 类一同使用,以加载和播放 FLV 文件。

在本例中,创建 Video 和 NetStream 对象并调用 Video.attachNetStream()NetStream.play() 方法的代码放在处理函数中。仅当连接到 NetConnection 对象的尝试取得成功时才调用处理函数,即,当 netStatus 事件返回 info 对象(带有一个表示成功的 code 属性)时,才调用该处理函数。建议您在调用 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

可以使用函数(而不是创建自定义类)来获取元数据。以下建议(由 Bill Sanders 提供)说明如何编辑上述 NetConnectionExample 代码来在函数中调用元数据。在此示例中,mdata 对象用于设置 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 ]为什么显示为英语?
《ActionScript 3.0 参考》中的内容以英语显示

《ActionScript 3.0 参考》中的部分内容未翻译成所有语言。当某个语言元素未翻译时,将显示为英语。例如,ga.controls.HelpBox 类未翻译成任何语言。因此在简体中文版的参考中,ga.controls.HelpBox 类显示为英语。