Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash Flv播放playheadupdate间隔(毫秒),即搜索到非关键帧_Flash_Actionscript 3_Flv_Flvplayback_Seek - Fatal编程技术网

Flash Flv播放playheadupdate间隔(毫秒),即搜索到非关键帧

Flash Flv播放playheadupdate间隔(毫秒),即搜索到非关键帧,flash,actionscript-3,flv,flvplayback,seek,Flash,Actionscript 3,Flv,Flvplayback,Seek,我无法捕捉毫秒范围内的playhead更新事件。这与加载的FLV电影的FLV播放有关。 根据文档,seek()函数寻找关键帧,它需要时间作为输入,精度为毫秒。 我有一个名为“下一帧”的函数,在该函数中,我暂停视频并尝试查找给定的播放时间 function onNextFrame(event:Event) { if (video1.playing) { video1.stop(); } play

我无法捕捉毫秒范围内的playhead更新事件。这与加载的FLV电影的FLV播放有关。 根据文档,seek()函数寻找关键帧,它需要时间作为输入,精度为毫秒。 我有一个名为“下一帧”的函数,在该函数中,我暂停视频并尝试查找给定的播放时间

    function onNextFrame(event:Event)
    {
        if (video1.playing)
        {
            video1.stop();
        }
        playHeadTime=Number(playHeadTime.toFixed(2));
        trace("Calling nextFrame :::",playHeadTime);
        trace(" Before seek ",video1.playheadTime);
        video1.seek(playHeadTime);
        playHeadTime +=  0.1;
    }
我还有一个寻道事件,它不会在每次寻道时更新,而是仅在flv视频中出现关键帧时更新

function onseeked(event:Event)
        {
            trace("seeked",video1.playheadTime);
        }
我还有一个playhead更新事件来跟踪playhead的移动 但这不会在使用下一帧函数时更新。只有在视频正常播放时,它才起作用

video1.playheadUpdateInterval = 30;
video1.seekToPrevOffset = 0.01;
video1.addEventListener(VideoEvent.SEEKED,onseeked);
video1.addEventListener(VideoEvent.PLAYHEAD_UPDATE,onPlayHeadUpdate);
function onseeked(event:Event)
        {
            trace("seeked",video1.playheadTime);
        }
我的问题是

  • 当视频暂停/停止并查找到某个时间时,我如何以毫秒为单位更新playhead
  • 当seek仅对关键帧起作用时,我首先如何更新playhead。如何将寻道设置为非关键帧时间
关于这一点的相关讨论也没有提供任何解决方案


更新: 即使使用netstream.seek()函数,对该函数的每次连续调用也不会显示video.playheadtime中的更改。其工作方式与video.seek()相同

这种分配也不适用于更改/更新playhead属性


我们如何实现快进/快退操作?

检查flv元数据是否有
canseekontime=false


还要检查NetStream.seek(12.222/*毫秒/1000*/)是否适用于同一flv

这是否完全取决于编码flv中有多少关键帧?关键帧越多=文件大小越大=搜索的准确性越高,对吗?文档中说搜索将转到最近的关键帧。如果您希望获得更高的精度,则必须搜索到上一个关键帧,播放它,收听播放头更新事件,检查播放头时间,并在播放头时间超过您想要的时间后立即暂停播放。为了提高playhead更新时间的准确性,请将playheadUpdateInterval设置为1000/stage.framerate,因为默认值为四分之一秒(250ms),非常精确。是否在元数据中接收
关键帧=[object object](时间,文件位置)
?跟踪关键帧位置时间戳并使用该时间戳进行搜索?我们不会得到中间人的。快/慢
video.playheadtime=0.1