怎么在Flex应用程序中使用NetConnection、NetStream和Video类来播放flv文件?怎么使用onMetaData和onCuePoint事件来处理视频的元数据和嵌入提示点。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
creationComplete="init()" >
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.utils.ObjectUtil;
private var nc:NetConnection;
private var ns:NetStream;
private var video:Video;
private var meta:Object;
protected function init():void
{
// TODO Auto-generated method stub
var nsClient:Object = new Object();
nsClient.onMetaData = ns_onMetaData;
nsClient.onCuePoint = ns_onCuePoint;
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
ns.play("http://192.168.0.50:81/TestRSL/avatar.flv");
ns.client = nsClient;
video = new Video();
video.attachNetStream(ns);
uic.addChild(video);
}
private function ns_onMetaData(item:Object):void
{
trace("meta");
meta = item;
video.width = item.width;
video.height = item.height;
uic.width = video.width;
uic.height = video.height;
panel.title = "frame rate:" + item.framerate;
panel.visible = true;
trace(ObjectUtil.toString(item));
}
private function ns_onCuePoint(item:Object):void
{
trace("cue");
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Panel id="panel" visible="true" width="376" height="374">
<mx:UIComponent id="uic" />
<s:controlBarContent>
<s:Button label="Play/Pause" click="ns.togglePause()" />
<s:Button label="Rewind" click="ns.seek(0); ns.pause();" />
</s:controlBarContent>
</s:Panel>
</s:Application>
很好的blog地址: http://blog.flexexamples.com/