1

我正在使用相同的 FLVPlayback 组件在我正在构建的大型 Flash 站点中播放许多页面转换视频。在每次转换时,我都会在进行每个页面转换之前使用myFLVPlayback.source和侦听事件来设置组件的源。fl.video.VideoEvent.READY只要每对页面之间的过渡使用不同的视频,这就可以正常工作。

不幸的是,当需要为两个连续的转换调用相同的页面到页面转换视频时,我遇到了问题。当连续两次播放相同的视频时,source将组件的属性设置为它已经拥有的值似乎没有做任何事情,这意味着我的听众fl.video.VideoEvent.READY永远不会触发。我可以做一些骇人听闻的事情,比如将它设置source为一个很小的、从未在其他地方使用过的 FLV,然后再将其设置为我实际用于转换的 FLV,作为“重置”组件的一种手段,但我想知道在这种情况下有哪些最佳实践(只要可以直面讨论 FLVPlaybackComponent 之类的最佳实践)。

我仔细阅读了该组件的livedocs,但空手而归,并且在这个后期手动使用 NetStream、NetConnection 和 Video 对象并不是一个真正的选择。

4

2 回答 2

3

我建议使用一个工具来检查您要播放的 URL 是否与之前的转换相同,如果是,则只需 seek(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()方法。

干杯

于 2009-12-31T15:23:17.603 回答
0

看起来这个问题已经解决了一段时间,但我想我还是会插话的。要准确模拟您描述的行为,您可以检查源是否 == 到下一个 URL,然后直接在 flvPlayback 实例上调用 dispatchEvent 。这样,如果 URL 不同,它的行为就会像它一样,并且您必须编写代码的唯一手动干预就是检查 URL 是否为 ==。

于 2010-05-19T13:43:39.370 回答