首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

as3不能播放flv解决思路

2012-03-17 
as3不能播放flvflex下建立一个ActionScript项目,名字NewHello。本意要播放flv文件,可没有任何影像出现。项目

as3不能播放flv
flex下建立一个ActionScript项目,名字NewHello。本意要播放flv文件,可没有任何影像出现。项目大致目录结构如下

NewHello
---src
  ---(默认包)
  ---NewHello.as
  ---connectThis(包)
  ---Connect.as

第一做法:
NewHello.as

Java code
package{    import connectThis.Connect;    import flash.display.MovieClip;    import flash.display.Sprite;    import flash.media.Video;    import flash.net.NetConnection;    import flash.net.NetStream;    public class NewHello extends Sprite    {        private var con:Connect;        public function NewHello()        {            con = new Connect();        }    }}

Connect.as
Java code
package connectThis{    import flash.display.DisplayObjectContainer;    import flash.display.MovieClip;    import flash.display.Sprite;    import flash.display.DisplayObjectContainer;    import flash.media.Video;    import flash.net.NetConnection;    import flash.net.NetStream;        public class Connect extends Sprite//DisplayObjectContainer//MovieClip//    {        public function Connect()        {            //创建NetConnection对象            var myNc:NetConnection=new NetConnection();            myNc.connect(null);            //使用onMetaData函数,Flash用来寻找这个方法            var metaObject:Object=new Object();            metaObject.onMetaData=onMetaData;            //构造NetStream对象并且连接创建的myNc对象            var myNs:NetStream=new NetStream(myNc);            myNs.play("http://192.168.1.126/sample.flv");            //发送所有onMetaData调用到NetStream上            myNs.client=metaObject;            //创建video尺寸            var video:Video=new Video(160,120);            //加载Video到NetStream上去,添加到display列表            video.attachNetStream(myNs);            addChild(video);        }        private function onMetaData(data:Object):void {            //发送Flash需要的Metadata数据        }    }}


本意是要播放绿色区域的文件http://192.168.1.126/sample.flv 但没有任何影像出现
注意:Connect继承DisplayObjectContainer或者MovieClip都无济于事

第二做法:
如果将两个文件的内容和到一起,只用NewHello.as文件,能顺利播放处flv,如下
Java code
package{    import flash.display.MovieClip;    import flash.display.Sprite;    import flash.media.Video;    import flash.net.NetConnection;    import flash.net.NetStream;    public class NewHello extends Sprite    {        public function NewHello()        {            var myNc:NetConnection=new NetConnection();            myNc.connect(null);            //使用onMetaData函数,Flash用来寻找这个方法            var metaObject:Object=new Object();            metaObject.onMetaData=onMetaData;            //构造NetStream对象并且连接创建的myNc对象            var myNs:NetStream=new NetStream(myNc);            myNs.play("http://192.168.1.126/sample.flv");            //发送所有onMetaData调用到NetStream上            myNs.client=metaObject;            //创建video尺寸            var video:Video=new Video(160,120);            //加载Video到NetStream上去,添加到display列表            video.attachNetStream(myNs);            addChild(video);        }                private function onMetaData(data:Object):void {            //发送Flash需要的Metadata数据        }            }}


问:怎样做才能使第一种做法中用两个文件的能正常播放

[解决办法]
路过,播放这块不怎么清楚
帮顶,O(∩_∩)O哈哈~
[解决办法]
你的Connect.as和newHello.as在同一级上,导入包的时候是import connectThis.Connect

[解决办法]
JScript code

package{    import connectThis.Connect;    import flash.display.MovieClip;    import flash.display.Sprite;    import flash.media.Video;    import flash.net.NetConnection;    import flash.net.NetStream;    public class NewHello extends Sprite    {        private var con:Connect;        public function NewHello()        {            con = new Connect();            [color=#FF0000]addChild(con);[/color]        }    }}
[解决办法]
con = new Connect();
addChild(con);

实例化组建后要追加到舞台上

热点排行