ActionScript® 3.0 Reference for the Adobe® Flash® Platform
Home  |  Show Packages and Classes List |  Packages  |  Classes  |  What's New  |  Index  |  Appendixes
org.osmf.metadata 

TimelineMetadata  - AS3 OSMF

Packageorg.osmf.metadata
Classpublic class TimelineMetadata
InheritanceTimelineMetadata Inheritance Metadata Inheritance EventDispatcher Inheritance Object

Language Version: ActionScript 3.0
Product Version: OSMF 1.0
Runtime Versions: Flash Player 10, AIR 1.5

The TimelineMetadata class encapsulates metadata associated with the timeline of a MediaElement.

TimelineMetadata uses the TimelineMarker class to represent both keys and values (i.e. a TimelineMarker will be stored as both key and value). A TimelineMetadata object dispatches a TimelineMetadataEvent when the currentTime property of the MediaElement's TimeTrait matches any of the time values in its collection of TimelineMarker objects.

View the examples



Public Properties
 PropertyDefined By
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
 Inheritedkeys : Vector.<String>
[read-only] The keys stored in this Metadata object.
Metadata
  numMarkers : int
[read-only] The number of TimelineMarker objects contained within this object.
TimelineMetadata
Public Methods
 MethodDefined By
  
Constructor.
TimelineMetadata
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
  
Adds the specified TimelineMarker to this object.
TimelineMetadata
 Inherited
Stores the specified value in this Metadata object, using the specified key.
Metadata
 Inherited
Dispatches an event into the event flow.
EventDispatcher
  
Returns the TimelineMarker at the specified index.
TimelineMetadata
 Inherited
Returns the value associate with the specified key.
Metadata
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
  
Removes the specified TimelineMarker from this object.
TimelineMetadata
 Inherited
Removes the value associated with the specified key from this Metadata object.
Metadata
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
 Inherited
Returns the string representation of this object, formatted according to locale-specific conventions.
Object
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active.EventDispatcher
 Inherited[broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive.EventDispatcher
  Dispatched when a TimelineMarker is added to this object.TimelineMetadata
  Dispatched when the currentTime property of the MediaElement associated with this TimelineMetadata has reached the duration offset of one of the TimelineMarkers in this TimelineMetadata.TimelineMetadata
  Dispatched when a TimelineMarker is removed from this object.TimelineMetadata
  Dispatched when the currentTime property of the MediaElement associated with this TimelineMetadata has reached the time value of one of the TimelineMarkers in this TimelineMetadata.TimelineMetadata
 InheritedDispatched when a new value is added to the Metadata object.Metadata
 InheritedDispatched when a value within the Metadata object changes.Metadata
 InheritedDispatched when a value is removed from the Metadata object.Metadata
Property Detail

numMarkers

property
numMarkers:int  [read-only]

The number of TimelineMarker objects contained within this object.



Implementation
    public function get numMarkers():int
Constructor Detail

TimelineMetadata

()Constructor
public function TimelineMetadata(media:MediaElement)

Language Version: ActionScript 3.0
Product Version: OSMF 1.0
Runtime Versions: Flash Player 10, AIR 1.5

Constructor.

Parameters
media:MediaElement — The media element this timeline metadata applies to.

Throws
ArgumentError — If the media argument is null.
Method Detail

addMarker

()method
public function addMarker(marker:org.osmf.metadata:TimelineMarker):void

Adds the specified TimelineMarker to this object. This class maintains the TimelineMarkers in time order. If another TimelineMarker with the same time value exists within this object, then the existing value will be overwritten.

Parameters

marker:org.osmf.metadata:TimelineMarker — The marker to add.

Throws
ArgumentError — If marker is null or specifies an invalid time.

getMarkerAt

()method 
public function getMarkerAt(index:int):org.osmf.metadata:TimelineMarker

Returns the TimelineMarker at the specified index. Note that the markers are sorted by time.

Parameters

index:int — The index of the marker to return.

Returns
org.osmf.metadata:TimelineMarker

removeMarker

()method 
public function removeMarker(marker:org.osmf.metadata:TimelineMarker):org.osmf.metadata:TimelineMarker

Removes the specified TimelineMarker from this object.

Parameters

marker:org.osmf.metadata:TimelineMarker — The marker to remove.

Returns
org.osmf.metadata:TimelineMarker

Throws
ArgumentError — If marker is null.
Event Detail

markerAdd

Event
Event Object Type: org.osmf.events.TimelineMetadataEvent
property TimelineMetadataEvent.type = org.osmf.events.TimelineMetadataEvent.MARKER_ADD

Language Version: ActionScript 3.0
Product Version: OSMF 1.0
Runtime Versions: Flash Player 10, AIR 1.5

Dispatched when a TimelineMarker is added to this object.

The TimelineMetadataEvent.MARKER_ADD constant defines the value of the type property of the event object for a markerAdd event.

markerDurationReached

Event  
Event Object Type: org.osmf.events.TimelineMetadataEvent
property TimelineMetadataEvent.type = org.osmf.events.TimelineMetadataEvent.MARKER_TIME_REACHED

Language Version: ActionScript 3.0
Product Version: OSMF 1.0
Runtime Versions: Flash Player 10, AIR 1.5

Dispatched when the currentTime property of the MediaElement associated with this TimelineMetadata has reached the duration offset of one of the TimelineMarkers in this TimelineMetadata.

The TimelineMetadataEvent.MARKER_TIME_REACHED constant defines the value of the type property of the event object for a markerTimeReached event.

markerRemove

Event  
Event Object Type: org.osmf.events.TimelineMetadataEvent
property TimelineMetadataEvent.type = org.osmf.events.TimelineMetadataEvent.MARKER_REMOVE

Language Version: ActionScript 3.0
Product Version: OSMF 1.0
Runtime Versions: Flash Player 10, AIR 1.5

Dispatched when a TimelineMarker is removed from this object.

The TimelineMetadataEvent.MARKER_REMOVE constant defines the value of the type property of the event object for a markerRemove event.

markerTimeReached

Event  
Event Object Type: org.osmf.events.TimelineMetadataEvent
property TimelineMetadataEvent.type = org.osmf.events.TimelineMetadataEvent.MARKER_TIME_REACHED

Language Version: ActionScript 3.0
Product Version: OSMF 1.0
Runtime Versions: Flash Player 10, AIR 1.5

Dispatched when the currentTime property of the MediaElement associated with this TimelineMetadata has reached the time value of one of the TimelineMarkers in this TimelineMetadata.

The TimelineMetadataEvent.MARKER_TIME_REACHED constant defines the value of the type property of the event object for a markerTimeReached event.
TimelineMetadataExample.as

package
{
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    
    import org.osmf.elements.VideoElement;
    import org.osmf.events.MediaElementEvent;
    import org.osmf.events.TimelineMetadataEvent;
    import org.osmf.media.MediaPlayerSprite;
    import org.osmf.media.URLResource;
    import org.osmf.metadata.CuePoint;
    import org.osmf.metadata.TimelineMetadata;
    
    public class TimelineMetadataExample extends Sprite
    {
        public function TimelineMetadataExample()
        {
            super();
            
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            
            var mediaPlayerSprite:MediaPlayerSprite = new MediaPlayerSprite();
            var urlResource:URLResource = new URLResource("rtmp://cp67126.edgefcs.net/ondemand/mp4:mediapm/osmf/content/test/cuepoints/spacealonehd_sounas_640_with_nav.f4v");
            videoElement= new VideoElement();
            videoElement.resource = urlResource;
            videoElement.addEventListener(MediaElementEvent.METADATA_ADD, onMetadataAdd);

            addChild(mediaPlayerSprite);
            mediaPlayerSprite.media = videoElement;    
        }

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

        private var videoElement:VideoElement;
    }
}