我想使用以下load()
接受五个参数的方法,以便我可以从较大的视频中加载一个小的“摘录”:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/video/VideoPlayer.html#load()
特别是,startTime
andduration
参数似乎是我需要的,但我收到的错误似乎表明我没有正确的对象/版本,即使 Adobe 文档说它应该可以工作。这是我的步骤:
- 开始一个新的空白 FLA 文档 (AS3)。
- 将 FLVPlayback 组件拖到舞台上并将其命名为 vPlayer。
创建一个新层并在第 1 帧中添加 Actionscript:
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: Error #1063: Argument count mismatch on fl.video::VideoPlayer/load(). Expected 1, got 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 中,错误表明 VideoPlayerload()
只需要一个参数(两个可选),并且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 组件不起作用。