编辑器加载中... 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("你取消了保存"); } } }