OSMF - добавить ключевую точку actioncript в видео? - PullRequest
1 голос
/ 05 июня 2010

Я пытаюсь добавить ключевую точку в видео, используя OSMF. Я построил видеоплеер OSMF и хотел бы использовать его вместо компонента FLVPlayback, который кажется единственным способом добавить ключевую точку actioncript?

Во всяком случае, я создал ключевую точку, написав это:

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 ]

2 голосов
/ 08 июня 2010

Я думаю, что это должно быть просто private function onMetadata.

1 голос
/ 14 сентября 2010

Вот еще один способ добавить ключевые точки, которые немного проще:

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

В основном:

  • Создайте своего игрока и контейнер
  • добавьте свой элемент видео в плеер
  • затем вы можете создать новые метаданные шкалы времени из элемента видео
  • тогда вы можете добавить ключевые точки
...