包 | flash.media |
类 | public class Video |
继承 | Video DisplayObject EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
将 Video 对象用于 Flash Media Server 时,可通过该对象将实时视频从用户计算机发送到服务器,然后从服务器向其他用户广播此视频。通过使用这些功能,您可以开发媒体应用程序,例如,简单的视频播放器、具有在服务器间进行多点发布功能的视频播放器或者用于用户社区的视频共享应用程序。
Flash Player 9 支持发布和回放使用 Sorenson Spark 或 On2 VP6 编解码器编码的 FLV 文件,并且还支持 Alpha 通道。与以前的技术相比,On2 VP6 视频编解码器使用的带宽较少,并且提供了额外的马赛克消除滤镜和色度去环滤镜。有关视频回放的详细信息,请参阅 flash.net.NetStream 类。
Flash Player 9.0.115.0 及更高版本支持 mipmap 以优化运行时呈现品质和性能。对于视频回放,如果将 Video 对象的 smoothing
属性设置为 true
,则 Flash Player 使用 mipmap 优化。
与显示列表中的其它显示对象一样,您可以控制 Video 对象的各种属性。例如,可以通过使用 Video 对象的 x
和 y
属性在舞台上移动该对象,以及通过使用其 height
和 width
属性更改其大小,等等。
若要播放视频流,请使用 attachCamera()
或 attachNetStream()
将视频附加到 Video 对象。然后,使用 addChild()
将 Video 对象添加到显示列表中。
注意:Video 类不是 InteractiveObject 类的子类,因此它无法调度鼠标事件。 但是,您可以对包含 Video 对象的显示对象容器调用 addEventListener()
方法。
另请参见
属性 | 定义方 | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties 此显示对象的当前辅助功能选项。 | DisplayObject | ||
alpha : Number 指示指定对象的 Alpha 透明度值。 | DisplayObject | ||
blendMode : String BlendMode 类中的一个值,用于指定要使用的混合模式。 | DisplayObject | ||
blendShader : Shader [只写] 设置用于混合前景和背景的着色器。 | DisplayObject | ||
cacheAsBitmap : Boolean 如果设置为 true,则 Flash Player 或 Adobe AIR 将缓存显示对象的内部位图表示形式。 | DisplayObject | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
deblocking : int 指示作为后处理的一部分应用于已解码视频的滤镜的类型。 | Video | ||
filters : Array 包含当前与显示对象关联的每个滤镜对象的索引数组。 | DisplayObject | ||
height : Number 指示显示对象的高度,以像素为单位。 | DisplayObject | ||
loaderInfo : LoaderInfo [只读 (read-only)] 返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。 | DisplayObject | ||
mask : DisplayObject 调用显示对象被指定的 mask 对象遮罩。 | DisplayObject | ||
mouseX : Number [只读 (read-only)] 指示鼠标位置的 x 坐标,以像素为单位。 | DisplayObject | ||
mouseY : Number [只读 (read-only)] 指示鼠标位置的 y 坐标,以像素为单位。 | DisplayObject | ||
name : String 指示 DisplayObject 的实例名称。 | DisplayObject | ||
opaqueBackground : Object 指定显示对象是否由于具有某种背景颜色而不透明。 | DisplayObject | ||
parent : DisplayObjectContainer [只读 (read-only)] 指示包含此显示对象的 DisplayObjectContainer 对象。 | DisplayObject | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
root : DisplayObject [只读 (read-only)] 对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 | DisplayObject | ||
rotation : Number 指示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 | DisplayObject | ||
rotationX : Number 指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 x 轴旋转(以度为单位)。 | DisplayObject | ||
rotationY : Number 指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 y 轴旋转(以度为单位)。 | DisplayObject | ||
rotationZ : Number 指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 z 轴旋转(以度为单位)。 | DisplayObject | ||
scale9Grid : Rectangle 当前有效的缩放网格。 | DisplayObject | ||
scaleX : Number 指示从注册点开始应用的对象的水平缩放比例(百分比)。 | DisplayObject | ||
scaleY : Number 指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。 | DisplayObject | ||
scaleZ : Number 指示从对象的注册点开始应用的对象的深度缩放比例(百分比)。 | DisplayObject | ||
scrollRect : Rectangle 显示对象的滚动矩形范围。 | DisplayObject | ||
smoothing : Boolean 指定在缩放视频时是否应进行平滑处理(插补数据)。 | Video | ||
stage : Stage [只读 (read-only)] 显示对象的舞台。 | DisplayObject | ||
transform : Transform 一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。 | DisplayObject | ||
videoHeight : int [只读 (read-only)] 一个整数,以像素为单位指定视频流的高度。 | Video | ||
videoWidth : int [只读 (read-only)] 一个整数,以像素为单位指定视频流的宽度。 | Video | ||
visible : Boolean 显示对象是否可见。 | DisplayObject | ||
width : Number 指示显示对象的宽度,以像素为单位。 | DisplayObject | ||
x : Number 指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 | DisplayObject | ||
y : Number 指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 | DisplayObject | ||
z : Number 指示 DisplayObject 实例相对于 3D 父容器沿 z 轴的 z 坐标位置。 | DisplayObject |
方法 | 定义方 | ||
---|---|---|---|
创建新的 Video 实例。 | Video | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
指定要在应用程序中 Video 对象的边界内显示的来自摄像头的视频流。 | Video | ||
指定要在应用程序中 Video 对象的边界内显示的视频流。 | Video | ||
清除 Video 对象(而非视频流)中当前显示的图像。 | Video | ||
将事件调度到事件流中。 | EventDispatcher | ||
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 | DisplayObject | ||
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 | DisplayObject | ||
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 | DisplayObject | ||
将二维点从舞台(全局)坐标转换为三维显示对象的(本地)坐标。 | DisplayObject | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
指示对象是否已经定义了指定的属性。 | Object | ||
计算显示对象,以确定它是否与 obj 显示对象重叠或相交。 | DisplayObject | ||
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 | DisplayObject | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将三维显示对象的(本地)坐标的三维点转换为舞台(全局)坐标中的二维点。 | DisplayObject | ||
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 | DisplayObject | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
deblocking | 属性 |
deblocking:int
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
指示作为后处理的一部分应用于已解码视频的滤镜的类型。默认值为 0,指示允许视频压缩程序根据需要应用消除马赛克的滤镜。
压缩视频可能会导致产生不希望有的伪像。可以使用 deblocking
属性设置用于减少马赛克(而对于使用 On2 编解码器压缩的视频,则用于降低扭曲边缘)的过滤器。
马赛克是指组成每个视频帧的块的边界之间的可见瑕疵。扭曲边缘是指视频图像内元素周围的扭曲边缘。
有两种消除马赛克的滤镜:分别在 Sorenson 编解码器和 On2 VP6 编解码器中。此外,如果使用 On2 VP6 编解码器,则可以使用色度去环滤镜。若要设置滤镜,请使用下列值之一:
如果在使用 Sorenson 编解码器时为视频选择了大于 2 的值,则 Sorenson 解码器默认为 2。
使用消除马赛克的滤镜会影响整体回放性能,而且对于高带宽视频通常没有必要。如果用户系统的功能不够强大,则用户在启用消除马赛克的滤镜的情况下回放视频可能会有困难。
public function get deblocking():int
public function set deblocking(value:int):void
smoothing | 属性 |
smoothing:Boolean
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
指定在缩放视频时是否应进行平滑处理(插补数据)。播放器必须处于高品质模式,平滑处理才起作用。默认值是 false
(不进行平滑处理)。
对于使用 Flash Player 9.0.115.0 及更高版本进行的视频回放,请将此属性设置为 true
以利用 mipmap 图像优化。
public function get smoothing():Boolean
public function set smoothing(value:Boolean):void
另请参见
videoHeight | 属性 |
videoHeight:int
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
一个整数,以像素为单位指定视频流的高度。对于实时流,此值与正在捕获该视频流的 Camera 对象的 Camera.height
属性相同。对于 FLV 文件,此值是以 FLV 形式导出的文件的高度。
例如,您可能需要使用此属性来确保用户以捕获时的相同大小观看视频,而无论 Video 对象在舞台上的实际大小是什么。
public function get videoHeight():int
另请参见
videoWidth | 属性 |
videoWidth:int
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
一个整数,以像素为单位指定视频流的宽度。对于实时流,此值与正在捕获该视频流的 Camera 对象的 Camera.width
属性相同。对于 FLV 文件,此值是以 FLV 文件形式导出的文件的宽度。
例如,您可能需要使用此属性来确保用户以捕获时的相同大小观看视频,而无论 Video 对象在舞台上的实际大小是什么。
public function get videoWidth():int
另请参见
Video | () | 构造函数 |
public function Video(width:int = 320, height:int = 240)
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
创建新的 Video 实例。如果没有提供 width
和 height
参数的值,将使用默认值。在初始构建后,也可以使用 Video.width
和 Video.height
设置 Video 对象的宽度和高度属性。在创建新的 Video 对象时,不允许宽度和高度的值为零;如果传递零,则将应用默认值。
创建 Video 后,请调用 DisplayObjectContainer.addChild()
或 DisplayObjectContainer.addChildAt()
方法以便将 Video 对象添加到父级 DisplayObjectContainer 对象。
width:int (default = 320 ) — 视频的宽度(以像素为单位)。 | |
height:int (default = 240 ) — 视频的高度,以像素为单位。 |
attachCamera | () | 方法 |
public function attachCamera(camera:Camera):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
指定要在应用程序中 Video 对象的边界内显示的来自摄像头的视频流。
可以使用此方法将实时视频从用户计算机附加到 Video 对象。您可以在捕获实时视频的同一台计算机上本地播放该视频,也可以将其发送到 Flash Media Server,然后使用该服务器将视频流式传输到其他用户。
参数
camera:Camera —
正在捕获视频数据的 Camera 对象。若要切断与该 Video 对象的连接,请传递 null 。
|
另请参见
attachNetStream | () | 方法 |
public function attachNetStream(netStream:NetStream):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
指定在应用程序中 Video 对象的边界内显示视频流。视频流是使用 NetStream.play()
播放的 FLV 文件(即 Camera 对象)或 null
。如果使用 FLV 文件,则可以将其存储在本地文件系统或 Flash Media Server 中。如果 netStream
参数的值为 null
,则不会再在 Video 对象中播放视频。
如果 FLV 文件只包含音频,则无需使用此方法;当调用 NetStream.play()
时,将自动播放 FLV 文件的音频部分。若要控制与 FLV 文件相关联的音频,请使用用于播放 FLV 文件的 NetStream 对象的 soundTransform
属性。
参数
netStream:NetStream —
一个 NetStream 对象。若要切断与该 Video 对象的连接,请传递 null 。
|
另请参见
clear | () | 方法 |
public function clear():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 Flash Player 9 |
清除 Video 对象(而非视频流)中当前显示的图像。此方法对于处理当前图像非常有用。例如,您可以清除最后一幅图像或显示待机信息,而无需隐藏 Video 对象。
另请参见
videoURL
的变量相匹配的 FLV 文件,在本例中,使用 SWF 文件所在目录下的一个名为 Video.flv 的 FLV 文件。
在本例中,创建 Video 和 NetStream 对象并调用 Video.attachNetStream()
和 NetStream.play()
的代码放入处理函数。仅在试图连接 NetConnection 对象成功时调用处理函数,即,当 netStatus
事件返回一个 info 对象,该对象带有一个表示成功的 code
属性时,才调用该处理函数。建议先等待连接成功,然后再调用 NetStream.play()
。
package { import flash.display.Sprite; import flash.events.*; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; public class VideoExample extends Sprite { private var videoURL:String = "Video.flv"; private var connection:NetConnection; private var stream:NetStream; public function VideoExample() { 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("Unable to locate video: " + videoURL); break; } } private function connectStream():void { stream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); var video:Video = new Video(); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }