代码之家  ›  专栏  ›  技术社区  ›  redconservatory

在视频中添加动作脚本提示点?

  •  1
  • redconservatory  · 技术社区  · 16 年前

    我正在尝试使用OSMF在视频中添加一个提示点。我构建了一个OSMF视频播放器,我想用它代替flvPlayback组件,这似乎是添加actionscript提示点的唯一方法?

    不管怎样,我通过写这个来创建一个提示点:

    var cuePoint:CuePoint = new CuePoint(CuePointType.ACTIONSCRIPT, 1, "good point", null);
                videoElement.addEventListener(MediaElementEvent.METADATA_ADD, onMetadataAdd);
    
                trace(cuePoint.time);
    

    提示点时间可追溯到“1”(成功)。

    然后,我从文档中获取了这段代码,认为它将有助于在我发布电影(测试视频)时跟踪提示点。

    private function onMetadataAdd(event:MediaElementEvent):void
            {
                if (event.namespaceURL == CuePoint.DYNAMIC_CUEPOINTS_NAMESPACE)
                {
                    var timelineMetadata:TimelineMetadata = videoElement.getMetadata(CuePoint.DYNAMIC_CUEPOINTS_NAMESPACE) as TimelineMetadata;
                    timelineMetadata.addEventListener(TimelineMetadataEvent.MARKER_TIME_REACHED, onCuePoint);
                }
            }
    
            private function onCuePoint(event:TimelineMetadataEvent):void
            {
                var cuePoint:CuePoint = event.marker as CuePoint;
                trace("Cue Point at " + cuePoint.time);
            }
    

    但是,当视频达到1秒时,我不会收到跟踪消息。有人能帮我吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   adamcodes    16 年前

    我觉得应该是 private function onMetadata .

        2
  •  1
  •   redconservatory    15 年前

    下面是另一种添加提示点的方法,这有点简单:

        private function addVideoWithACuePoint()
        {
        url:String = "your-url";
        resource = new URLResource(url);
        videoElement = new VideoElement(resource);
    
        player = new MediaPlayer();
        player.media = videoElement;
    
        conainer = new MediaContainer(); 
        container.addMediaElement(videoElement);
        myTimelineMetadata = new TimelineMetadata(videoElement);
        myTimelineMetadata.addEventListener(TimelineMetadataEvent.MARKER_TIME_REACHED, onCuePointHandler, false, 0, true); 
    
       // add a cuepoint below:
        var cuePoint = new CuePoint(CuePointType.ACTIONSCRIPT,time, name, parameters);                  
        myTimelineMetadata.addMarker(cuePoint); 
    }
    

    基本上:

    • 创建播放器和容器
    • 将视频元素添加到播放机
    • 然后您可以从视频元素创建新的时间线元数据
    • 然后你可以添加提示点
    推荐文章