NetStream创建无缝动态播放列表AS3

时间:2012-06-08 19:12:15

标签: dynamic playlist netstream

我需要在AS3中以近乎无缝的过渡动态创建播放列表。

我尝试过使用带有.APPEND的play2命令。它确实在非动态设置中工作。 但我所拥有的是,在应用程序启动时,我知道第一个视频是什么,然后,在该视频结束之前,我将知道下一个视频将播放的内容等等,直到我收到消息即表示我播放了最后一个视频。

所以,一开始,我不知道会有多少视频,也不知道将要播放的文件的顺序。

如果我在播放流时尝试使用APPEND添加视频,它似乎会替换当前播放的视频,而不是仅在当前视频结束时播放缓冲和播放。

我也不能使用appendBytes,因为视频文件必须是h.264格式

任何人的帮助将不胜感激,因为我不知道在哪个方向看。如有必要,我可以提供更多细节。

非常感谢。

1 个答案:

答案 0 :(得分:1)

这是一个袖手旁观的答案,但逻辑是合理的&应该给你另一个追求的方向。

首先,概念:使用Flash视频,您有两个完全独立的进程同时发生:

  1. 缓冲/加载

  2. 视频播放

  3. 因此,播放&流媒体可以&确实同时发生,但是分开发生这就是逻辑应该被吸引的地方。

    所以,实现:将有一个主要播放器和一个辅助(阴影)播放器/加载器。主要播放器应负责加载初始视频&玩它。

    [&安培;这里来了魔术]

    主要播放器中的缓冲完成后,由NetStream对象上的NetStream.Buffer.Flush NetStatusEvent确定。然后开始在影子播放器中缓冲以下视频,初始化连接&使用NetStream.Pause,在主要播放器播放时开始缓冲但不播放。

    当主播放器中的播放完成时(由NetStream.Play.Stop事件确定),您可以将影子播放器中的变量(NetConnention,NetStream& Video)(始终通过引用传递)传递给主播放器&安培;它应该几乎无缝地继续。然后清除阴影播放器和放大器中的值。重复上述过程,在加载下一个视频之前等待缓冲完成;无限的。

    或者,您可以采用更加平衡的方法 - 虽然在我看来这将是更加资源密集型(因为您将有2个视频播放器持续活跃) - 并且具有主要和&次要球员,他们交替。一旦一个缓冲区完成,你开始缓冲下一个缓冲区,一旦完成播放,你就会从一个播放器切换到另一个播放器。

    这将是非常繁琐的组装(因此缺乏一个例子,因为它很复杂,实质上是你的工作;)因为你将处理2套NetConnections,NetStreams&视频 - 开始时很复杂,需要处理的很多事件......

    但是,我认为play2()不是你的答案,主要用于重新唤醒破碎/关闭的NetConnections。这里面临的问题是2个独立的NetConnections&的无缝异步。 NetStreams的。

    请告诉我,如果你仍然需要帮助/解释,这是一个旧的Q&如果你已经开始了,我不想写几百行代码......

    最好,a。)

相关问题