AS3 NetStream 滞后于第一帧

AS3 NetStream lags on first frame

我正在 Adob​​e Air 中开发一个应用程序,以显示分辨率为 2560x1440 的博物馆展览视频。该应用程序在我的机器上运行顺利,但是当我 运行 它在另一台(功能较弱的)计算机上运行时,它无法按预期运行。我已经在两台机器上发短信申请了。

问题是当其中一个视频被调出时,视频被调出并显示视频的第一帧并在那里滞后了好几秒 (5-10),但是我仍然可以听到声音的。大约 8-10 秒后,视频像以前播放过一样播放,并在恢复正常播放之前出现短暂的停顿(1-2 秒)。这是每次启动视频时的一致行为,只要它是一个相当大的视频(据我所知 > 50 MB)。

这在我的开发机器上没有发生,它有一个 GTX 980 显卡,但除了那个和主板,我想不出多台机器的规格之间有什么区别。

视频在启动时会立即引发一个事件,指示缓冲区已满,因此缓冲似乎不是问题。

编辑:Code(Pastebin)

编辑 2:发现这是第一帧,而不是黑屏

仍然不完全确定问题的根源在哪里,但解决问题的方法是在调用视频后立即添加此代码。它所做的是暂停播放并添加一个计时器一秒钟,然后在视频中寻找 0.5 秒。除了克服第一帧延迟之外,我还没有 运行 对此进行测试,但它确实有效。

ns.pause();
var hesitate:Timer = new Timer(1000, 1);
hesitate.addEventListener(TimerEvent.TIMER_COMPLETE, function(e:TimerEvent)
{
    ns.seek(0.5);
    ns.resume();
});
hesitate.start();