0

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

    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);
        }

我还有一个播放头更新事件来跟踪播放头的移动,但这不会在使用下一帧功能时更新。它仅在视频正常播放时才有效。

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);
        }

我的问题是

  • 当视频暂停/停止并搜索一段时间时,如何以毫秒精度更新播放头。
  • 当搜索似乎仅适用于关键帧时,我如何首先更新播放头。我如何获得非关键帧时间的搜索?

关于这个但也没有提供任何解决方案的相关讨论是

如何在 flv 播放器中跳转到非关键帧


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

video.playheadtime=0.1

这种分配也无法使播放头属性更改/更新。

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

4

1 回答 1

0

检查 flv 元数据是否canseekontime = false
也检查是否NetStream.seek(12.222/*milliseconds/1000*/)适用于同一个 flv

于 2011-03-23T12:07:07.780 回答