video播放时小文件可以播放,大文件却不能播放!
解决办法是将video的deblocking 属性 修改为1.
下面是video类:
包 flash.media
类 public class Video
继承 Video DisplayObject EventDispatcher Object
子类 VideoPlayer
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
使用 Video 类可以直接在应用程序中显示实时视频流,而无需将其嵌入 SWF 文件中。 可以使用 Camera.getCamera() 方法捕获并播放实时视频。 还可以使用 Video 类通过 HTTP 或从本地文件系统回放 Flash ® 视频 (FLV) 文件。 有关详细信息,请参见 NetConnection 类和 NetStream 类条目。
Flash Player 9 支持用 Sorenson 或 On2 VP6 编解码器编码的 FLV 文件的发布和回放,也支持 Alpha 通道。 与早期的技术相比,On2 VP6 视频编解码器所占用的带宽要少,并且还另外提供了消除马赛克滤镜和 Deringing 滤镜。
与显示列表上的其它显示对象一样,您可以控制 Video 对象的各种属性。 例如,可以通过使用 Video 对象的 x 和 y 属性在舞台上移动该对象,可以通过使用其 height 和 width 属性更改其大小,等等。
若要播放视频流,请使用 .attachCamera() 或 .attachNetStream() 方法将视频附加到 Video 对象,并使用 addChild() 将 Video 对象添加到显示列表中。
如果看不到“库”面板,请选择“窗口”>“库”,让该面板显示出来。
单击“库”面板标题栏右侧的“选项”菜单,然后选择“新建视频”,在库中添加一个嵌入式 Video 对象。
将该 Video 对象拖放到舞台上,然后使用属性检查器为它指定一个唯一的实例名称,如 my_video。 (不要将其命名为“Video”。)
注意:Video 类不是 InteractiveObject 类的子类,因此它无法调度鼠标事件。 但是,可以使用包含 Video 对象的显示对象容器的 addEventListener() 方法。
查看示例
另请参见
flash.media.Camera.getCamera()
flash.net.NetConnection
flash.net.NetStream
核心显示类
视频基础知识
--------------------------------------------------------------------------------
公共 属性
隐藏继承的公共属性
显示继承的公共属性
属性 定义方
accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。 DisplayObject
alpha : Number
指示指定对象的 Alpha 透明度值。 DisplayObject
blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。 DisplayObject
cacheAsBitmap : Boolean
如果设置为 true,则 Flash Player 将缓存显示对象的内部位图表示形式。 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
[static] 对类或函数对象的原型对象的引用。 Object
root : DisplayObject
[read-only] 对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 DisplayObject
rotation : Number
指示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 DisplayObject
scale9Grid : Rectangle
当前有效的缩放网格。 DisplayObject
scaleX : Number
指示从注册点开始应用的对象的水平缩放比例(百分比)。 DisplayObject
scaleY : 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
公共 方法
隐藏继承的公共方法
显示继承的公共方法
方法 定义方
Video(width:int = 320, height:int = 240)
创建新的 Video 实例。 Video
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 EventDispatcher
attachCamera(camera:Camera):void
指定在应用程序窗口中 Video 对象的边界内显示来自摄像头的视频流。 Video
attachNetStream(netStream:NetStream):void
指定在应用程序窗口中 Video 对象的边界内显示视频流。 Video
clear():void
清除该 Video 对象中当前显示的图像。 Video
dispatchEvent(event:Event):Boolean
将事件调度到事件流中。 EventDispatcher
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 DisplayObject
getRect(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 DisplayObject
globalToLocal(point:Point):Point
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 DisplayObject
hasEventListener(type:String):Boolean
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 EventDispatcher
hasOwnProperty(name:String):Boolean
指示对象是否已经定义了指定的属性。 Object
hitTestObject(obj:DisplayObject):Boolean
计算显示对象,以确定它是否与 obj 显示对象重叠或相交。 DisplayObject
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 DisplayObject
isPrototypeOf(theClass:Object):Boolean
指示 Object 类的实例是否在指定为参数的对象的原型链中。 Object
localToGlobal(point:Point):Point
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 DisplayObject
propertyIsEnumerable(name:String):Boolean
指示指定的属性是否存在、是否可枚举。 Object
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。 EventDispatcher
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
设置循环操作动态属性的可用性。 Object
toString():String
返回指定对象的字符串表示形式。 Object
valueOf():Object
返回指定对象的原始值。 Object
willTrigger(type:String):Boolean
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 EventDispatcher
事件
隐藏继承的事件
显示继承的事件
事件 摘要 定义方
activate Flash Player 获得操作系统焦点并变为活动状态时调度。 EventDispatcher
added 将显示对象添加到显示列表中时调度。 DisplayObject
addedToStage 在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。 DisplayObject
deactivate Flash Player 失去操作系统焦点并变为非活动状态时调度。 EventDispatcher
enterFrame 播放头进入新帧时调度。 DisplayObject
removed 将要从显示列表中删除显示对象时调度。 DisplayObject
removedFromStage 在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。 DisplayObject
render 将要更新和呈现显示列表时调度。 DisplayObject
属性详细信息
deblocking 属性
deblocking:int [read-write]
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
指示作为后处理的一部分应用于已解码视频的滤镜的类型。 默认值为 0,指示允许视频压缩程序根据需要应用消除马赛克的滤镜。
压缩视频可能会导致产生不希望有的伪像。 可以使用 deblocking 属性设置用于减少马赛克(而对于使用 On2 编解码器压缩的视频,则用于降低扭曲边缘)的过滤器。
马赛克是指组成每个视频帧的块的边界之间的可见瑕疵。 扭曲边缘是指视频图像内元素周围的扭曲边缘。
有两种消除马赛克的滤镜:分别在 Sorenson 编解码器和 On2 VP6 编解码器中。 此外,如果使用 On2 VP6 编解码器,则可以使用 Deringing 滤镜。 若要设置滤镜,请使用下列值之一:
0 - 允许视频压缩程序根据需要应用消除马赛克的滤镜。
1 - 不使用消除马赛克的滤镜。
2 - 使用 Sorenson 消除马赛克的滤镜。
3 -(只限 On2 视频)使用 On2 消除马赛克的滤镜,但不使用 Deringing 滤镜。
4 -(只限 On2 视频)使用 On2 消除马赛克的滤镜和 Deringing 滤镜。
5 - (只限 On2 视频)使用 On2 消除马赛克的滤镜和性能更高的 On2 Deringing 滤镜。
如果在使用 Sorenson 编解码器时为视频选择了大于 2 的值,则 Sorenson 解码器默认为 2。
使用消除马赛克的滤镜会影响整体回放性能,而且对于高带宽视频通常没有必要。 如果用户系统的功能不够强大,则用户在启用消除马赛克的滤镜的情况下回放视频可能会有困难。
实现
public function get deblocking():int
public function set deblocking(value:int):void
smoothing 属性
smoothing:Boolean [read-write]
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
指定在缩放视频时是否应进行平滑处理(插补数据)。 播放器必须处于高品质模式,平滑处理才能起作用。 默认值为 false(不进行平滑处理)。
实现
public function get smoothing():Boolean
public function set smoothing(value:Boolean):void
videoHeight 属性
videoHeight:int [read-only]
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
一个整数,以像素为单位指定视频流的高度。 对于实时流,此值与正在捕获该视频流的 Camera 对象的 Camera.height 属性相同。 对于 FLV 文件,此值是以 FLV 形式导出的文件的高度。
例如,您可能需要使用此属性来确保用户以捕获时的相同大小观看视频,而无论 Video 对象在舞台上的实际大小是什么。
实现
public function get videoHeight():int
另请参见
flash.media.Camera.height
videoWidth 属性
videoWidth:int [read-only]
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
一个整数,以像素为单位指定视频流的宽度。 对于实时流,此值与正在捕获该视频流的 Camera 对象的 Camera.width 属性相同。 对于 FLV 文件,此值是以 FLV 文件形式导出的文件的宽度。
例如,您可能需要使用此属性来确保用户以捕获时的相同大小观看视频,而无论 Video 对象在舞台上的实际大小是什么。
实现
public function get videoWidth():int
另请参见
flash.media.Camera.width
构造函数详细信息
Video () 构造函数
public 函数 Video(width:int = 320, height:int = 240)
语言版本 : ActionScript 3.0
Player 版本 : 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
Player 版本 : Flash Player 9
指定在应用程序窗口中 Video 对象的边界内显示来自摄像头的视频流。
参数 camera:Camera — 正在捕获视频数据的 Camera 对象。 若要切断与该 Video 对象的连接,请传递 null。
另请参见
Video.attachNetStream()
flash.media.Camera
attachNetStream () 方法
public function attachNetStream(netStream:NetStream):void
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
指定在应用程序窗口中 Video 对象的边界内显示视频流。 视频流是通过 NetStream.play() 命令显示的 FLV 文件(如 Camera 对象),或者是 null。 如果 netStream 参数的值为 null,将不再在对象内播放视频。
如果 FLV 文件只包含音频,则无需使用此方法;当调用 NetStream.play() 方法时,FLV 文件的音频部分会自动播放。 若要控制与 FLV 文件相关联的音频,请使用用于播放 FLV 文件的 NetStream 对象的 soundTransform 属性。
参数 netStream:NetStream — 一个 NetStream 对象。 若要切断与该 Video 对象的连接,请传递 null。
另请参见
Video.attachCamera()
flash.net.NetStream.soundTransform
SoundTransform
clear () 方法
public function clear():void
语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
清除该 Video 对象中当前显示的图像。 如果要显示待机信息,则可以使用此方法。这样就不必隐藏该 Video 对象了。
另请参见
Video.attachCamera()
示例 如何使用示例
以下示例将 Video 对象与 NetConnection 和 NetStream 类一同使用,以加载和播放 FLV 文件。 若要运行此示例,需要一个名称和位置与传递给 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 {
var stream:NetStream = 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.
}
}
}
--------------------------------------------------------------------------------
提交有关 LiveDocs 的反馈
© 2004-2007 Adobe Systems Incorporated. All rights reserved.
Fri Apr 13 2007, 5:57 AM GMT-07:00