我自定义构建的Flash视频播放器(AS3)中有代码,可以自动从与Flash媒体服务器的连接暂时丢失中恢复。代码基本上是这样工作的:
- NetConnection.Connect
- 。已关闭,尝试重新连接
- 重新连接成功后,调用ns.play()恢复视频流的播放
这工作。
但是由于上面的步骤2,我的时间线重置为零。根据Flash文档(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#time), Netstream的"时间"属性"被设置为0时,Netstream .play()被调用,reset设置为1或true。"
那个"time"属性也是只读的,所以我似乎没什么可做的。我不能确切地将它设置为像"lastPosition"这样的变量,而这正是我想做的。
我在play()调用中尝试了各种参数,试图防止零超出时间属性。像…
ns.play(streamName, lastPosition, -1, 0);
最后一个参数设置"reset"为false。但这并没有帮助。"time"属性在调用play()时仍然归零。
所以即使我在100秒内开始播放文件,NetStream的"time"属性反映的是"0"。没有好。应该反映"100"
是否有另一个属性,我在这里错过了反映文件中的真实播放位置,或者我做了其他错误的东西?
我知道现在回答这个问题有点晚了,但我知道,可能是另一个需要答案的人。
你可以这样做:
ns.play(streamName, lastPosition);
或者在接收到NetStream.Play.Start
事件后,您可以简单地执行:
ns.seek(lastPosition)