8.9.在Flex程序中平滑播放视频

8.9.1. 问题
我需要在应用程序中平滑播放视频。
8.9.2. 解决办法
创建一个自定义组件包含the flash.media.Video 组件,然后设置视频的平滑属性设置为True 。
8.9.3. 讨论
要平滑视频,像这样,使视频看起来减少像素化,你需要访问flash.media.Video 对象。视频平滑,就想图像平滑,需要比非平滑播放需要更强的处理能力,可能降低大画面或高清视频的播放速度。

Flex VideoDisplay 组件不允许你为它包含的flash.media.Video 对象设置平滑属性。所以你必须创建一个单独的组件,增加了较低级别的FlashVideo 组件,并设置平滑属性:
+展开
-XML
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400"
height="300creationComplete="setup()">

<mx:Script>
<![CDATA[
private var vid:Video;
private var nc:NetConnection;
private var ns:NetStream;
private var metaDataObj:Object = {};
private function setup():void {
vid = new Video(this.width, this.height);
vid.smoothing = true;
this.rawChildren.addChild(vid);
vid.y = 50;
this.invalidateDisplayList();
}
private function startVid():void {
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS,
netStatusHandler);
nc.connect(null);
}
private function
netStatusHandler(event:NetStatusEvent):void {
ns = new NetStream(nc);
metaDataObj.onMetaData = this.onMetaData;
ns.client = metaDataObj;
vid.attachNetStream(ns);
ns.play("http://localhost:3001/Trailer.flv");
}
private function onMetaData(obj:Object):void {
var i:int = 0;
for each(var prop:Object in obj)
{
trace(obj[i] + " : " + prop);
i++;
}t
trace(obj.duration+" "+obj.framerate+
" "+obj.bitrate);
}

]]>
</mx:Script>
<mx:Button click="startVid()label="loadx="50"/>
<mx:Button click="ns.resume()label="resumex="120"/>
<mx:Button click="ns.pause()label="pausex="190"/>
</mx:Canvas>

加支付宝好友偷能量挖...


评论(0)网络
阅读(93)喜欢(0)flash/flex/fcs/AIR