重置FLVPlayback组件以用于具有相同源的播放
我正在使用相同的FLVPlayback组件在整个我正在构建的大型Flash网站中播放许多网页转换视频。在每次转换时,我使用myFLVPlayback.source
设置组件的源,并在继续进行每个页面转换之前监听fl.video.VideoEvent.READY
事件。只要每一对网页之间的转换使用不同的视频,这就可以正常工作。重置FLVPlayback组件以用于具有相同源的播放
不幸的是,当两个连续转换需要调用相同的页面到页面转换视频时,我遇到了一个问题。当连续播放两次相同的视频时,将组件的source
属性设置为其已有的值似乎不会执行任何操作,这意味着我的听众对于fl.video.VideoEvent.READY
不会触发。我可以做一些琐碎的事情,比如将source
设置为一个小型的,从未使用过的FLV,然后将其设置为FLV,我实际上将它用于过渡作为“重置”组件的方式,但是我希望知道在这种情况下最佳实践是什么(只要像FLVPlaybackComponent这样的最佳实践可以用直白的脸面来讨论)。
我已经仔细阅读了该组件的livedocs,但空手而归,并且在这个后期阶段手动使用NetStream,NetConnection和Video对象并不是真正的选择。
我建议使用一个线束检查您要播放的URL是否与上一个转换相同,如果是,则只搜索(0)(即倒回视频)而不是重置源。重置源可能会迫使视频重新上传(例如,如果浏览器缓存被禁用),这可能不是你想要的。
if (myFlvPlayback.source == nextTransitionUrl) {
myFlvPlayback.seek(0);
startTransition();
}
else {
myFlvPlayback.source = nextTransitionUrl;
// The "ready" event will fire, and your event handler will start playback
}
看看FLVPlayback.seek()方法。
干杯
看起来这一个已经解决了一段时间,但我想我反正插入内容。要完全模拟您描述的行为,您可以检查源代码是否为==到下一个URL,然后直接在flvPlayback实例上调用dispatchEvent。这样,它的行为就像它的URL不同,只有你编码的手动干预只是检查URL是否为==。
谢谢先生!像魅力一样工作。 – justinbach 2009-12-31 15:31:28