?Flex3中对流媒体的支持不是很好,但是Flex4 却对rtmp协议有了很好的支持,能够自动识别rtmp协议,经本人认证确实如此,连接rtmp协议几乎不用多些什么代码,当然支持的视频当然是Flv格式啦。好了,请看本人的代码:
--->点击阅读更多 ???
[html]
view plain
copy
print
?
- <?xmlversionxmlversion="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"?>??
- ????<fx:Script>??
- ???????<![CDATA[?
- ???????????import?mx.collections.ArrayCollection;?
- ???????????import?mx.controls.Alert;?
- ???????????import?mx.controls.dataGridClasses.DataGridItemRenderer;?
- ???????????import?mx.events.FlexEvent;?
- ???????????private?var?conn:NetConnection;?
- ???????????private?var?stream:NetStream;?
- ???????????[Bindable]?
- ???????????private?var?fileUrl:String="";???//歌曲链接地址?
- ???????????[Bindable]?
- ???????????private?varsongList:ArrayCollection=new?ArrayCollection([?
- ??????????????{showName:'恋上另一个人',songer:'游鸿明',filmName:'chirsyu_lslygr.flv'},?
- ??????????????{showName:'一天一万年',filmName:'chirisyu_ytywn.flv'},?
- ??????????????{showName:'下沙',filmName:'chirisyu_xs.flv'},?
- ??????????????{showName:'五月的雪',filmName:'chirisyu_wydx.flv'},?
- ??????????????{showName:'楼下那个女人',filmName:'chirisyu_lxngnr.flv'},?
- ??????????????{showName:'白色恋人',filmName:'chirisyu_bslr.flv'}?
- ????????????]);?
- ???????????
- ???????????private?function?netStatusHandler(event:NetStatusEvent):void{?
- ??????????????switch(event.info.code)?
- ??????????????{?
- ??????????????????case?"NetConnection.Connect.Success":?
- ??????????????????{?
- ?????????????????????connectStream();?
- ?????????????????????break;?
- ??????????????????}?
- ??????????????????case?"NetStream.Play.StreamNotFound":{?
- ?????????????????????Alert.show("文件不存在!","提示");?
- ?????????????????????break;?
- ??????????????????}???
- ??????????????????
- ??????????????}?
- ???????????}?
- ???????????private?function?connectStream():void{?
- ??????????????stream=new?NetStream(conn);?
- ??????????????stream.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);?
- ??????????????stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR,asyncErrorHandler);?
- ??????????????var?video:Video=new?Video();??//定义一个播放器?
- ??????????????video.width=300;?
- ??????????????video.height=335;?
- ??????????????video.attachNetStream(stream);?
- ??????????????stream.play(fileUrl);?
- ??????????????videoDisplay.addChild(video);?
- ???????????}?
- ???????????private?function?securityErrorHandler(event:SecurityErrorEvent):void{?
- ???????????}?
- ???????????private?function?asyncErrorHandler(event:AsyncErrorEvent):void{?
- ???????????}?
- ???????????
- ???????????protected?function?showList_clickHandler(event:MouseEvent):void?
- ???????????{?????????????
- ??????????????//?TODOAuto-generated?method?stub?
- ??????????????var?dataGridItemRenderer:DataGridItemRenderer=event.target?asDataGridItemRenderer;?
- ??????????????fileUrl=event.target.data['filmName'];?
- ??????????????if(dataGridItemRenderer!=null){?
- ??????????????????//需要捕获此异常,否则程序无法运行?
- ??????????????????try{?
- ?????????????????????if(conn.connected){?
- ?????????????????????????conn.close();?
- ?????????????????????}?
- ??????????????????}catch(e:Error){}?
- ??????????????????conn=new?NetConnection;?
- ??????????????????conn.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);?
- ??????????????????conn.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);?
- ??????????????????conn.connect("rtmp://localhost/oflaDemo");????//连接Red5服务器?
- ??????????????????
- ??????????????}?
- ???????????}?
- ???????????
- ???????]]>??
- ????</fx:Script>??
- ????<fx:Declarations>??
- ?????????
- ????</fx:Declarations>??
- ?????
- ????<mx:HDividedBox?x="194"?y="68"?width="750"?height="430"?fontSize="16"??fontWeight="bold">??
- ????????
- ???????<s:Panel?height="421"?width="50%"?title="MV列表"?>??
- ???????????<mx:DataGrid?width="100%"?height="100%"?dataProvider="{songList}"?id="showList"click="showList_clickHandler(event)">??
- ??????????????<mx:columns>??
- ??????????????????<mx:DataGridColumn?headerText="歌曲名"?dataField="showName"?width="250"/>??
- ??????????????????<mx:DataGridColumn?headerText="演唱者"?dataField="songer"?/>??
- ??????????????????<mx:DataGridColumn?headerText="链接地址"?dataField="filmName"?visible="false"?/>??
- ??????????????</mx:columns>??
- ???????????</mx:DataGrid>??
- ???????</s:Panel>??
- ???????<s:Panel?width="350"?height="419"?title="MV预览">??
- ???????????<s:VideoDisplay?id="videoDisplay"?x="20"?y="20"?width="100%"?height="100%"/>??
- ???????</s:Panel>??
- ????</mx:HDividedBox>??
- ?????
- </s:Application>??
- ???
?
? ? ? 部分注释详见代码中,点击左侧的MV名,即可在右侧播放,献上一幅图:
???

--->点击阅读更多 ???
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|