actionscript-3 – FLVPlayback / VideoPlayer:如何访问接受5个
我想使用以下load()方法接受五个参数,以便我可以从较大的视频加载一个小的“摘录”:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/video/VideoPlayer.html#load() 特别是,startTime和duration参数似乎是我需要的,但我收到的错误似乎表明我没有正确的对象/版本的东西,即使Adobe文档说它应该工作.这是我的步骤: >启动一个新的空白FLA文档(AS3). import fl.video.*; var innerPlayer = vPlayer.getVideoPlayer(vPlayer.activeVideoPlayerIndex); trace(innerPlayer); // "[object VideoPlayer]" appears in Output window innerPlayer.load( "RTMP://...",0 // totalTime,false // isLive,60 // startTime,10 // duration ); 这应该给我一个十分钟的剪辑从一分钟标记开始,但我不断收到像ArgumentError这样的错误:错误#1063:fl.video :::PideoPlayer/load()上的参数计数不匹配.预计1,得到5. 我也尝试将innerPlayer转换为fl.video.VideoPlayer,但这不起作用. 我究竟做错了什么? 编辑:即使我在CS4 / AS3和文档声称适用于CS4 / AS3,我的“组件源”文件夹中的类文件似乎与文档不匹配.我也在CS6中尝试了这个,我得到了“1137:参数数量不正确.预计不超过3”. @SunilD. – 对于CS4:FLVPlayback.VERSION = 2.1.0.19,我的目标是Flash Player 10(最新的)AS3.对于CS6,FLVPlayback.VERSION = 2.5.0.26,我的目标是Flash Player 11.4. 在CS4和CS6中,错误表明VideoPlayer load()只需要一个参数(有两个可选),而play()有三个可选参数. describeType(innerPlayer)的输出确认: <type name="fl.video::VideoPlayer" base="flash.media::Video" isDynamic="false" isFinal="false" isStatic="false"> ... <method name="play" declaredBy="fl.video::VideoPlayer" returnType="void"> <parameter index="1" type="String" optional="true"/> <parameter index="2" type="Number" optional="true"/> <parameter index="3" type="Boolean" optional="true"/> </method> ... <method name="load" declaredBy="fl.video::VideoPlayer" returnType="void"> <parameter index="1" type="String" optional="false"/> <parameter index="2" type="Number" optional="true"/> <parameter index="3" type="Boolean" optional="true"/> </method> ... </type> 其他说明:Flash CS6是最新的.手动安装FLVPlayback 2.5组件不起作用. 解决方法
Anon,我认为这是一个文档很差的问题/有太多不同版本的不同产品(Flash,Flex,播放器,flvplayback组件).
我能够使用.load()调用来处理所有5个参数(并验证它确实在指定的开始时间开始播放),但只能通过从最新的Flex SDK源代码编译新的FLVPlayback_116.swc(Flex) 4.6 with playerglobal.swc version 11.6). 见我的screenshot. 不妨看看它是否适合你.这是你需要做的: >从库中删除FLVPlayback组件 – 这将使用更新的版本定义冲突的类. >或者FLVPlayback_116_air.swc,如果您的目标是Adobe AIR,而不是Flash Player / web >在Flash中,打开文件 – >在“动作脚本设置”对话框的“库路径”选项卡下,单击“浏览到SWC文件”,找到刚刚下载的FLVPlayback_116.swc文件.我上面的屏幕截图显示了此对话框以及添加后如何列出FLVPlayback_116.swc文件. >您需要设置:fl.video.VideoPlayer.iNCManagerClass = fl.video.NCManager; 这是我的代码(在屏幕截图中也可以看到): import fl.video.*; fl.video.VideoPlayer.iNCManagerClass = fl.video.NCManager; var innerPlayer = new VideoPlayer(640,480); addChild(innerPlayer); innerPlayer.load( "http://10.0.1.3/test.flv",5 // startTime,5 // duration ); innerPlayer.play(); 此外,您可以看到我的VideoPlayer的describeType显示了正确数量的参数: <method name="load" declaredBy="fl.video::VideoPlayer" returnType="void"> <parameter index="1" type="String" optional="false"/> <parameter index="2" type="Number" optional="true"/> <parameter index="3" type="Boolean" optional="true"/> <parameter index="4" type="Number" optional="true"/> <parameter index="5" type="Number" optional="true"/> <metadata name="__go_to_definition_help"> <arg key="pos" value="41308"/> </metadata> </method> <method name="play" declaredBy="fl.video::VideoPlayer" returnType="void"> <parameter index="1" type="String" optional="true"/> <parameter index="2" type="Number" optional="true"/> <parameter index="3" type="Boolean" optional="true"/> <parameter index="4" type="Number" optional="true"/> <parameter index="5" type="Number" optional="true"/> <metadata name="__go_to_definition_help"> <arg key="pos" value="34410"/> </metadata> </method> 更新:我已经更新了库,以便你可以实例化一个FLVPlayback(w,h)并因此应用皮肤或诸如此类的东西 – 就像上面代码中的vPlayer一样对待它(除了我添加了宽度/高度构造函数args,因为使用的大小来自舞台上的组件).像这样实例化: var vPlayer:FLVPlayback = new FLVPlayback(640,480); vPlayer.skin = "http://10.0.1.3/skin.swf"; // optional skin addChild(vPlayer); var innerPlayer = vPlayer.getVideoPlayer(vPlayer.activeVideoPlayerIndex); innerPlayer.load( "http://10.0.1.3/test.flv",5 // duration ); 注意 – 为了使用皮肤,我从Flash CS6中编译了一个FLA示例…我尝试使用我在Internet上找到的皮肤并且它不起作用 – 它很可能是为旧版本编译的.请参阅此skinned screenshot并下载我的skin.swf. 祝你好运,如果你需要更多信息,请告诉我! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |