1

我正在尝试使用 OSMF 向视频添加提示点。我构建了一个 OSMF 视频播放器,我想使用它而不是 FLVPlayback 组件,这似乎是添加动作脚本提示点的唯一方法?

无论如何,我通过编写以下代码创建了一个提示点:

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 秒时,我没有收到跟踪消息。谁能帮我?

4

2 回答 2

2

我认为应该只是private function onMetadata

于 2010-06-08T16:10:17.073 回答
1

这是另一种更简单的添加提示点的方法:

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

基本上:

  • 创建你的播放器和容器
  • 将您的视频元素添加到播放器
  • 然后您可以从视频元素创建新的时间线元数据
  • 然后你可以添加提示点
于 2010-09-14T17:10:29.613 回答