0

我有一个关于动作脚本 3 的问题。我有一个 flv 视频,它的总时间是 6 秒。我想用 seekSeconds() 从 2. 秒开始。如果我在 seekSeconds 中写入大于 6 的值,它只会从头到尾播放视频。如果我写小于 6,它将不起作用。我可以在 seekSeconds() 中写入什么以从 2 秒开始播放视频?

function useParams()
{
var obj:Object = new Object();

var j;
for (j in this.myParams)
{
    if (j == "url")
    {
        src = this.myParams[j];
    }
    else if (j=="bas")
    {
        startTime = int(this.myParams[j]);
    }
    else
    {
        stopTime = int(this.myParams[j]);
    }

    txt.text +=  j + "  -  " + this.myParams[j];
}
//fk.source = src;
txt.text = String(startTime);

}

fk.addEventListener(VideoEvent.READY, bitti);
function bitti(eventObject:VideoEvent):void
{ 
//fk.play();
trace(fk.totalTime);
fk.seek(2);
trace(fk.playheadTime);
//trace(fk.playheadTime);
}
4

1 回答 1

0

根据VideoPlayer的文档, Event.READY 被调度:

加载 FLV 文件并准备好显示时调度的事件。它在您使用 play() 或 load() 方法加载新的 FLV 文件后第一次进入响应状态时启动。对于每个加载的 FLV 文件,它只启动一次。

视频可能已准备好,但尚未缓冲到足够的量以供搜索。您可以将bufferTime更改为大于 2 的值,尽管我不确定这是否能保证 Event.READY 会在您需要的时间被触发。还要注意寻求渐进式下载的属性:

对于渐进式下载,您只能搜索关键帧;因此,搜索会将您带到指定时间之后的第一个关键帧的时间。

因此,请确保您设置的 bufferTime 足够提前了 2 秒,以确保您通过了关键帧。

注意: VideoPlayer 和 NetStream 上都有一个 bufferTime,因此您可能需要调整其中之一或两者。

于 2010-06-18T23:03:12.123 回答