编辑器加载中... Video 类 Video 类在应用程序中显示实时视频或录制视频,而无需在 SWF 文件中嵌入视频。

此类在用于播放以下视频类型的 Adobe Flash 或 Adobe Flex 界面中创建一个 Video 对象: 存储在服务器或本地的 FLV 录制文件,或者从用户计算机 中捕获的实时视频。Video 对象是应用程序的显示列表中的一 个显示对象,它表示在用户界面中运行视频的可见空间。 将 Video 对象用于 Flash Media Server 时,可通过该对象将实 时视频从用户计算机发送到服务器,然后从服务器向其他用户 广播此视频。

通过使用这些功能,您可以开发媒体应用程序, 例如,简单的视频播放器、具有在服务器间进行多点发布功能 的视频播放器或者用于用户社区的视频共享应用程序。

公共属性:

deblocking:int--指示作为后处理的一部分应用于已解 码视频的滤镜的类型

smoothing:Boolean--指定在缩放视频时是否应进行平滑 处理(插补数据);

videoHeight:int--一个整数,以像素为单位制定视频流 的高度; videoWidth:int--一个整数,以像素为单位指定视频流 的宽度; 公共方法:

Video(width:int = 320,height:int = 240)--创建新 的Video实例。

attachCamera(camera:Camera):void--指定要在程序中 Video对象的边界内显示的来自摄像头的视频流。

attachNetStream(netStream:NetStream):void--指定要在 应用程序中Video对象的边界内显示的视频流。

clear():void--清除Video对象(而非视频流)中当 前显示的图像。

下面请看一个视频播放器实例:

packge{

import flash.display.MouseClip;

import flash.net.NetStream;

import flash.net.NetConnection;

import flash.media.Video;

public class main extends MouseClip{

private var nets:NetStream;

private var netc:NetConnection;

private var video:Video;

private var flog:int = 1;

private var totalTimes:Number = 0;

private var fullflag:Boolean;

public function main() {

init();

initBar();

setDispatcher();

}

private function initBar():void

{

_bar1.ScaleX = 0;

_bar2.ScaleY = 0;

}

private function init():void

{

netc = new NetConnection();

netc.connect(null);

nets = new NetStream(netc);

nets.plsy("1.flv");

nets.addEventListener(AsyncErroEvent.ASYNC_ERROR,onMeta);

video = new Video();

video.addachNetStream(nets);

video.x = 5;

video.y = 3;

this.addChild(video);

addEventListener(Event.ENTER_FRAME,getpro);

var obj:Object = new Object();

obj.onMetaData = getLen;

nets.client = obj;

addEventListener(Event.ENTER_FRAME,onPlaying);

}

private function onMeta(e:AsyncErrorEvent):void { }

private function getpro(e:Event):void

{ //totalTimes = Object.duration; __bar1.scaleX = netS.bytesLoaded / netS.bytesTotal; if (netS.bytesLoaded / netS.bytesTotal == 1) { removeEventListener(Event.ENTER_FRAME, getpro); }

}

private function onPlaying(e:Event):void

{ __bar2.scaleX = netS.time / totalTimes; }

private function SetDispatcher():void

{ netS.seek(0); netS.togglePause();

play_stop.buttonMode = true;

stop_btn.buttonMode = true;

bar._bar.buttonMode = true;

jieP.buttonMode = true;

bar._bar.addEventListener(MouseEvent.MOUSE_DOWN, ondown);

bar._bar.addEventListener(MouseEvent.MOUSE_UP, onup);

stage.addEventListener(MouseEvent.MOUSE_UP, onup);

play_stop.addEventListener(MouseEvent.CLICK, onps);

stop_btn.addEventListener(MouseEvent.CLICK, onstop);

jieP.addEventListener(MouseEvent.CLICK, onjiep); }

private function ondown(e:MouseEvent):void

{ bar._bar.startDrag(true, new Rectangle(0, 0, bar.bar2.width, 0)); }

private function onup(e:MouseEvent):void

{ bar._bar.stopDrag(); if (bar._bar.x > bar.bar2.width) { bar._bar.x = bar.bar2.width; }

soundT = new SoundTransform();

soundT.volume = bar._bar.x / bar.bar2.width; netS.soundTransform = soundT; }

private function getLen(obj:Object):void

{ totalTimes = obj.duration; }

private function onps(e:MouseEvent):void { netS.togglePause(); if (flag == 1) { flag = 2; play_stop.gotoAndStop(flag); }else { flag = 1; play_stop.gotoAndStop(flag); } }

private function onstop(e:MouseEvent):void

{ flag = 1; netS.pause(); netS.seek(0); play_stop.gotoAndStop(flag); }

private function onjiep(e:MouseEvent):void

{ var bitmapdata:BitmapData = new BitmapData(video.width, video.height); bitmapdata.draw(video);

var jpgEncode:JPGEncoder = new JPGEncoder();

var bytesArr:ByteArray=ByteArray(jpgEncode.encode(bitmapdata));

var file:FileReference = new FileReference();

file.addEventListener(Event.SELECT, onselect);

file.addEventListener(Event.CANCEL, oncancel);

file.save(bytesArr, "未命名.jpg"); }

private function onselect(e:Event):void { trace("图片已保存"); }

private function oncancel(e:Event):void { trace("你取消了保存"); } } }