gpt4 book ai didi

actionscript-3 - 如何利用play2()函数实现视频的快速流切换?

转载 作者:行者123 更新时间:2023-12-03 06:06:07 25 4
gpt4 key购买 nike

我目前正在开发具有分辨率切换功能的 Flash 网络播放器。我正在尝试利用 NetStream 类的 play2() Actionscript 中的函数。

我遇到的问题是视频变化不快。对于熟悉 play2() 的人函数 我相信玩家正在执行 "standard switch"而不是"fast switch."

The documentation says that当offset参数为-1时,发生快速切换。但实际发生的情况是:"NetStream.Play.Transition"收到事件后,玩家将等待 ns.time + ns.bufferLength 表示的时间。在执行切换之前已经达到了。

我以为快速切换会清除缓冲区,但在检查 ns.backbufferlength 时,我发现所有内容仍然被缓存。它还提到:“当偏移量为 -1 时,切换发生在 netstream.time + 3 之后的第一个可用关键帧”,这就是我感到困惑的原因。

任何有关此事的帮助/见解将不胜感激。

下面是描述正在发生的情况的代码片段(当用户单击更改为新分辨率时调用 newStream(),youtube 风格):

public function newStream(address:String):void
{
var opts:NetStreamPlayOptions = new NetStreamPlayOptions();
opts.streamName = address;
opts.transition = NetStreamPlayTransitions.SWITCH;
opts.offset = -1;
ns.play2(opts);
}

private function nsCallback(event:NetStatusEvent)
{
switch(event.info.code)
{
case "NetStream.Play.Transition":
{
trace("Current time (on Transition): " +
ns.time, "Buffer: " + ns.bufferLength);
var estTime:Number = ns.time + ns.bufferLength;
trace("Estimated Completion Time: " + estTime);
break;
}
}
}

最佳答案

正如文档所述:“offset 的默认值为 -1,这将切换行为默认为标准。在这种模式下,服务器会及时确定流之间的良好转换点从接收到 switch 调用的点开始,并在该点进行切换。”

因此,您必须将“offset”参数更改为高于当前播放时间的值 (Netstream.time)。如果该值较小,则发送 NetStream.Play.Failed 状态事件。

关于actionscript-3 - 如何利用play2()函数实现视频的快速流切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com