This guide provides information about the API changes between DHLS 1.4 and Browser TVSDK 2.4.2.

Advertising workflow API element changes

These tables compare the advertising workflow API elements for the  ActionScript Browser TVSDK between DHLS 1.4 and Browser TVSDK 2.4.

Tables in this topic:

  • AuditudeSettings
  • AdvertisingMetadata
  • AdSignalingMode
  • Opportunity
  • OpportunityGenerator / OpportunityGeneratorClient
  • Placement / PlacementType / PlacementMode
  • ReplaceTimeRange
  • DeleteRangeTimelineOperation
  • TimelineOperation
  • AdBreakPlacement
  • AdBreak
  • Ad / AdType
  • AdAsset
  • AdBannerAsset
  • AdClick
  • AdTimelineItem
  • AdBreakTimelineItem
  • AdBreakPolicy / AdBreakWatchedPolicy / AdPolicy / AdPolicyMode / AdPolicyInfo / AdPolicySelector
  • AdBreakMove
  • AdBreakRemoval
  • TimedMetadata
  • CustomRangeMetadata / CustomRangeType
  • Reservation
  • Timeline
  • TimelineItem
  • TimelineMarker
  • ContentTracker
  • ContentResolver / ContentResolverClient
  • CustomAdHandler / CustomAdHandlerClient

AuditudeSettings

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.metadata {
    public class AuditudeSettings extends AdvertisingMetadata {
          public function get zoneId():String;
          public function set zoneId(value:String):void;

          public function get mediaId():String;
          public function set mediaId(value:String):void;

          public function get defaultMediaId():String;
          public function set defaultMediaId(value:String):void;

          public function get domain():String;
          public function set domain(value:String):void;

          public function get targetingInfo():Metadata;
          public function set targetingInfo(value:Metadata):void;

          public function get customParameters():Metadata;
          public function set customParameters(value:Metadata):void;

          public function get creativeRepackagingEnabled():Boolean;
          public function set creativeRepackagingEnabled(value:Boolean):void;

          public function get adRequestTimeout():Number;
           public function set adRequestTimeout(value:Number):void;

          public function get customAdLoadTimeout():Number;
           public function set customAdLoadTimeout(value:Number):void;

          public function get validMimeTypes():Array;
          public function set validMimeTypes(value:Array):void;

          public function get fallbackOnInvalidCreative():Boolean;
          public function set fallbackOnInvalidCreative(value:Boolean):void;

          public function get configLocation():String;
          public function set configLocation(value:String):void;

          }
}

interface AuditudeSettings : AdvertisingMetadata {
    attribute DomString zoneId;
    attribute DomString mediaId;
    attribute DomString defaultMediaId;
    attribute DomString domain;

    attribute DomString userAgent;

    attribute Metadata targetingInfo;

    attribute Metadata customParameters;

    attribute Boolean creativePackaingEnabled;

    attribute Boolean showStaticBanners;

    attribute Array validMimeTypes;

    attribute Boolean fallbackOnInvalidCreative;

}

AdvertisingMetadata

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.metadata {

    public class AdvertisingMetadata extends Metadata {

        public function AdvertisingMetadata();

        public final function get adSignalingMode():String;
        public final function set adSignalingMode(value:String):void;

        public final function get adBreakAsWatched():String;
        public final function set adBreakAsWatched(value:String):void;

        public final function get delayAdLoading():Boolean;
        public final function set delayAdLoading(value:Boolean):void;

        }
}

Interface AdvertisingMetadata {
    attribute AdSignalingMode mode;
    attribute AdBreakWatchedPolicy adBreakAsWatched;  
    attribute Boolean delayAdLoading;
    attribute Boolean livePreroll;
    readonly attribute Boolean hasDelayAdLoading;

    readonly attribute Boolean hasLivePreroll;

};

AdSignalingMode

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.metadata {
    public class AdSignalingMode {
        public static const DEFAULT:String = "default";
        public static const MANIFEST_CUES:String = "manifest cues";
        public static const SERVER_MAP:String = "server map";
        public static const CUSTOM_RANGES:String = "custom ranges";
        public static function isModeSupported(mode:String):Boolean;

        }
}

Enum AdSignalingMode {
    const unsigned short DEFAULT = 0,
    const unsigned short MANIFEST_CUES = 1,
    const unsigned short SERVER_MAP = 2,
    const unsigned short CUSTOM_RANGES = 3

};

Opportunity

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline {
    public class Opportunity {
  
       public function Opportunity(id:String, 
           placement:Placement, settings:Metadata, 
           customParams:Metadata);

        public function get id():String;
        public function get placement():Placement;

        public function get settings():Metadata;
        public function set settings(settings:Metadata):void;

        public function get customParams():Metadata;
        public function set customParams(value:Metadata):void; 

    }

}        

Interface Opportunity {
    readonly attribute DomString id;
    readonly attribute Placement placement;
    readonly attribute Metadata settings;
    readonly attribute Metadata customParams;


};

OpportunityGenerator / OpportunityGeneratorClient

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
OpportunityGenerator

package com.adobe.mediacore.timeline.generators {
    public class OpportunityGenerator {
        public function OpportunityGenerator();

        public final function get client():OpportunityGeneratorClient;
        public final function get item():MediaPlayerItem;
        public final function get adSignalingMode():String;
        public final function configure(item:MediaPlayerItem,
        context:MediaPlayerContext, client:OpportunityGeneratorClient, 
        playhead:Number, playbackRange:TimeRange):void;
        protected function doConfigure(playhead:Number, 
        playbackRange:TimeRange):void;

        public final function update(playhead:Number,
        playbackRange:TimeRange):void;
        protected function doUpdate(playhead:Number, 
        playbackRange:TimeRange):void;

       }
}

Interface OpportunityGenerator {
    void configureCallbackFunc(MediaPlayerItem item, OpportunityGeneratorClient 
    client, AdSignalingMode mode, Number playhead, TimeRange 
    playbackRange);
    void updateCallbackFunc(Number playhead, TimeRange playbackRange);
    void cleanupCallbackFunc();

};

OpportunityGeneratorClient Class  

package com.adobe.mediacore.timeline.generators {
    public interface OpportunityGeneratorClient {
        function resolve(opportunity:Opportunity):void;
        function hold(timeRange:TimeRange):Reservation;
        function cancel(reservation:Reservation):void;

        }
}

Interface OpportunityGeneratorClient {
    void resolve(Opportunity opportunity);
    Reservation hold(TimeRange timeRange);
    void cancel(Reservation reservation);

};

Placement / PlacementType / PlacementMode

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
Placement

package com.adobe.mediacore.timeline {
    public final class Placement {
        public static const UNKNOWN_TIME:Number = -1;
        public static const UNKNOWN_DURATION:Number = -1;

        public function Placement(type:String, time:Number = UNKNOWN_TIME, duration:Number = UNKNOWN_DURATION, 
        mode:String = null);
        public function get type():String;
        public function get time():Number;
        public function get duration():Number;
        public function get mode():String;
        public function compareTo(otherPlacement:Placement):int;
        public function get range():TimeRange;
        public function toString():String;

Interface Placement {
    readonly attribute PlacementType type;
    readonly attribute long time;
    readonly attribute long duration;
    readonly attribute PlacementMode mode;
    readonly attribute TimeRange range;
    readonly attribute Boolean isValid;

};

 

PlacementType Enum

public final class PlacementType {
    public static const PRE_ROLL:String = "pre-roll";
    public static const MID_ROLL:String = "mid-roll";
    public static const POST_ROLL:String = "post-roll";
    public static const CUSTOM_RANGE:String = "custom-range";
    public static const SERVER_MAP:String = "server-map";
    public static function isContained(type:String):Boolean;

}

Enum PlacementType {
    const unsigned short PRE_ROLL = 0,
    const unsigned short MID_ROLL = 1,
    const unsigned short POST_ROLL = 2,
    const unsigned short SERVER_MAP = 3

};

PlacementMode Enum

package com.adobe.mediacore.timeline {
    public final class PlacementMode {
        public static const DEFAULT:String = "default";
        public static const INSERT:String = "insert";
        public static const REPLACE:String = "replace";
        public static const DELETE:String = "delete";
        public static const SPLICEIN:String = "splicein";
        public static const FREEREPLACE:String = "free-replace";
        public static function isContained(mode:String):Boolean;
    }
}

Enum PlacementMode {
    const unsigned short DEFAULT = 0,
    const unsigned short INSERT = 1,
    const unsigned short REPLACE = 2, 
    const unsigned short DELETE = 3,
    const unsigned short MARK = 4,
    const unsigned short FREEREPLACE = 5 

};

ReplaceTimeRange

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
ContentTracker

package com.adobe.mediacore.utils {
    public final class ReplaceTimeRange extends TimeRange {
        public static function createRange(begin:Number, duration:Number, 
        replaceDuration:Number):ReplaceTimeRange
        
        public function ReplaceTimeRange (begin:Number, end:Number, replaceDuration:Number);
        public function get replaceDuration():Number;

        public static const ASCENDING_SORT_FUNCTION:Function = function(a:ReplaceTimeRange,
        b:ReplaceTimeRange):int; 
    }

}

Interface ReplaceTimeRange {
    readonly attribute 
    unsigned long replaceDuration;

};

DeleteRangeTimelineOperation

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DeleteRange extends TimelineOperation {
    public function DeleteRange(deletePlacement:Placement);

}

Interface DeleteRangeTimelineOperation {
    readonly attribute Boolean isValid;
};

TimelineOperation

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.operations { 
    public class TimelineOperation {
        public function TimelineOperation(placement:Placement);
        public function get placement():Placement;

    }

}

Interface TimelineOperation {
    readonly attribute Placement placement ;

};

AdBreakPlacement

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.operations {
    public class AdBreakPlacement extends TimelineOperation {
        public function AdBreakPlacement(placement:Placement, adBreak:AdBreak) ;
        public function get adBreak():AdBreak;
    }


}

interface AdBreakPlacement : TimelineOperation {
    readonly attribute AdBreak adBreak;
    readonly attribute double time;
    readonly attribute double time;
    readonly attribute double duration;
    readonly attribute Boolean isValid;

};

AdBreak

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
    public final class AdBreak {
        public static function create(ads:Vector.<Ad>, tracker:ContentTracker = null, 
           type:String = null):AdBreak;
        public static function get allowCustomAds():Boolean;
        public function AdBreak(ads:Vector.<Ad>, tracker:ContentTracker = null, 
           type:String = null);
       public function get isCustomAdMarker():Boolean;
        public function get ads():Vector.<Ad>;
        public function get duration():Number;
        public function get tracker():ContentTracker;
        public function get type():String;
    }

}

interface AdBreak {
    readonly attribute Array.<Ad> ads;
    readonly attribute double duration;
    readonly attribute AdInsertionType insertionType;
     
    readonly attribute ContentTracker tracker;

};

Ad / AdType

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
    public final class Ad {
        public static function linearFromAsset(id:String, primaryAsset:AdAsset, companionAssets:Vector.<AdAsset>, 
        tracker:ContentTracker = null):Ad;
        public static function customLinearFromAsset(id:String, primaryAsset:AdAsset, companionAssets:Vector.
        <AdAsset>, tracker:ContentTracker = null):Ad;
        public static function createCustomAdMarker(type:String, duration:Number, id:String, 
        primaryAdAsset:AdAsset):Ad;
        public function Ad(id:String, type:String, duration:uint, 
            primaryAsset:AdAsset, companionAssets:Vector.
            <AdAsset>, tracker:ContentTracker = null);
        public function get id():String;
        public function get type():String;
        public function get duration():uint;
        public function get primaryAsset():AdAsset;
        public function get companionAssets():Vector.<AdAsset>;
        public function get tracker():ContentTracker;
        public function get isCustomAd():Boolean;
        public function get isSkippable():Boolean;
        public function get customData():Object; 
        public function set customData(value:Object):void;
        public function equals(otherAd:Ad):Boolean;
        public function toString():String; 
        
        }

}

interface Ad {
    readonly attribute AdAsset primaryAsset;
    readonly attribute Array.<AdAsset> companionAssets;
    readonly attribute double duration;
    readonly attribute DomString id;
    readonly attribute unsigned short adType;
    readonly attribute AdInsertionType adInsertionType;
    readonly attribute Boolean isClickable;
    readonly attribute Boolean 
    isCustomAdMarker;
    readonly attribute ContentTracker tracker;
    readonly attribute Boolean isCustomAd;
    readonly attribute Boolean isVPAIDAd;

};

AdType Enum

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
    public final class AdType {
        public static const LINEAR:String = "linear";
        public static const NON_LINEAR:String = "nonlinear";
        public static function isTypeSupported(type:String):Boolean

    }

}

Enum AdType {
    const unsigned short LINEAR = 0,
    const unsigned short NON_LINEAR = 1

}

AdAsset

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
    public class AdAsset {
        public static function create(id:String, duration:Number, resource:MediaResource, adClick:AdClick = null, 
        metadata:Metadata = null):AdAsset;
        public function AdAsset(id: String, duration: Number,
            resource: MediaResource, adClick: AdClick, 
            metadata: 
        public function get id():String
        public function get duration():Number;
        public function get resource():MediaResource;
        public function get adClick():AdClick;
        public function get metadata():Metadata;

        };

}

Interface AdAsset {
    readonly attribute DomString id;
    readonly attribute double duration;
    readonly attribute MediaResource resource;
    readonly attribute AdClick adClick;
    readonly attribute Metadata metadata;
    readonly attribute DomString 
    parameters;
    readonly attribute Boolean isValid;

};

AdBannerAsset

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
   public class AdBannerAsset extends AdAsset {
        public static const STATIC_URL:String = "static";
        public static const IFRAME_URL:String = "iframe";
        public static const HTML:String = "html";
        public static function create(id:String, duration:Number, resource:MediaResource, resourceType:String, width:int, height:int,
        staticUrl:String = null, adClick:AdClick = null, metadata:Metadata = null):AdBannerAsset;
        
        public function AdBannerAsset(id: String, duration: Number, resource: MediaResource, staticUrl: String, adClick: AdClick, width: 
        uint, height: uint, mimeType: String, metadata: Metadata, trackingClickUrls: Vector.<String>, impressionUrls: Vector.<String>);
        public function get width(): uint;
        public function get height(): uint;
        public function get resourceType(): String;
        public function get staticUrl(): String;
        public function get bannerData(): String;
    }

}

Interface AdBannerAsset : AdAsset {
    readonly attribute int width;
    readonly attribute int height;
    readonly attribute DomString staticUrl;
    readonly attribute DomString resourceType;
    readonly attribute DomString bannerData;

};

AdClick

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
AdBreakPlacement

package com.adobe.mediacore.advertising {
    public class AdClick {
        public function AdClick(id:String, title:String, url:String);
        public function get id():String;
        public function get title():String;
        public function get url():String;

    }
}

Interface AdClick {
    readonly attribute DomString id;
    readonly attribute DomString title;
    readonly attribute DomString url;
    readonly attribute Boolean isValid;
};

AdTimelineItem

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
    public class AdTimelineItem extends TimelineItem {
        public function AdTimelineItem(id:uint, virtualRange:TimeRange, localRange:TimeRange, adBreak:AdBreak, ad:Ad);
        public final function get adBreak():AdBreak;
        public final function get ad():Ad;
        public function equals(otherAdTimelineItem:AdTimelineItem):Boolean;
         

    }

}

interface AdTimelineItem : TimelineItem {
    readonly attribute AdBreak adBreak;
    readonly attribute Ad ad;  
}

AdBreakTimelineItem

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.advertising {
    public class AdBreakTimelineItem extends TimelineItem implements TimelineMarker {
        public static function create(id:uint, items:Vector.<AdTimelineItem>):AdBreakTimelineItem;
        public function AdBreakTimelineItem(id:uint, items:Vector.<AdTimelineItem>);
        public final function get adBreak():AdBreak
        public final function get placementType():String;;
        public final function get items():Vector.<AdTimelineItem>;
        public final function get time():Number;
        public final function get duration():Number;
    }
}

interface AdBreakTimelineItem : TimelineItem {
    readonly attribute AdBreak adBreak;
    readonly attribute AdBreak adBreak;
    readonly attribute Array.<AdTimelineItem> items;
    readonly attribute double time;
    readonly attribute double duration;

};

AdBreakPolicy / AdBreakWatchedPolicy / AdPolicy / AdPolicyMode / AdPolicyInfo / AdPolicySelector

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
AdBreakPolicy Enum  

public class AdBreakPolicy 
{
public static const PLAY:String = "adBreakPolicyPlay";
public static const REMOVE:String = "adBreakRemove";
public static const REMOVE_AFTER_PLAY:String = "adBreakRemoveAfterPlay";
public static const SKIP:String = "adBreakPolicySkip";
}

Enum AdBreakPolicy = {
const unsigned short PLAY = 0,
const unsigned short REMOVE = 2,
const unsigned short REMOVE_AFTER_PLAY = 3,
const unsigned short SKIP = 1,
};

AdBreakWatchedPolicy Enum  

public class AdBreakWatchedPolicy
{
public static const NEVER:String = "adBreakWatchedNever";
public static const WATCHED_ON_BEGIN:String = "adBreakWatchedOnBegin";
public static const WATCHED_ON_END:String = "adBreakWatchedOnEnd";
public static isPolicySupported(policy:String):Boolean

}

Enum AdBreakWatchedPolicy = {

const unsigned short NEVER = 2,
const unsigned short WATCHED_ON_BEGIN = 0,
const unsigned short WATCHED_ON_END = 1,

};

AdPolicy Enum  

public class AdBreakWatchedPolicy
{
public static const PLAY:String = "adPolicyPlay";
public static const PLAY_FROM_AD_BEGIN:String = "adPolicyPlayFromAdBegin";
public static const PLAY_FROM_AD_BREAK_BEGIN::String = "adPolicyPlayFromAdBreakBegin";

}

Enum AdPolicy =
{
const unsigned short PLAY  = 0,
const unsigned short PLAY_FROM_AD_BEGIN = 1,
const unsigned short PLAY_FROM_AD_BREAK_BEGIN = 2,
const unsigned short SKIP_TO_NEXT_AD_IN_AD_BREAK = 3,
const unsigned short SKIP_AD_BREAK = 4

};

AdPolicyMode Enum  

package com.adobe.mediacore.timeline.advertising.policy {
    public final class AdPolicyMode {
        public static const PLAY:String = "adPolicyModePlay";
        public static const SEEK:String = "adPolicyModeSeek";
        public static const TRICK_PLAY:String = "adPolicyModeTrickPlay";
    }

}

Enum AdPolicyMode {
    const unsigned short PLAY = 0,
    const unsigned short SEEK = 1,
    const unsigned short TRICK_PLAY = 2

};

AdPolicyInfo Class  

package com.adobe.mediacore.timeline.advertising.policy {
    public class AdPolicyInfo {
        public static function createPlayPolicy(adBreakTimelineItem:AdBreakTimelineItem, 
        currentTime:Number):AdPolicyInfo;
        public static function createSeekPolicy(adBreakTimelineItems:Vector.<AdBreakTimelineItem>, 
        seekIntoAd:AdTimelineItem, currentTime:Number, desiredSeekPosition:Number):AdPolicyInfo;
        public static function createTrickPlayPolicy(adBreakTimelineItem:AdBreakTimelineItem, 
        currentTime:Number):AdPolicyInfo;
        public function get adBreakTimelineItems():Vector.<AdBreakTimelineItem>;
        public function get seekIntoAd():AdTimelineItem;
        public function get currentTime():Number;
        public function get desiredSeekPosition():Number;
        public function get rate():Number;
        public function get mode():String;
    
    }

}

Interface AdPolicyInfo {
    readonly attribute Array.
    <AdBreakTimelineItem> 
    adBreakTimelineItems;

    readonly attribute AdTimelineItem 
    adTimelineItem;

    readonly attribute double currentTime;
    readonly attribute double seekToTime;
    readonly attribute double rate;
    readonly attribute short mode;

};

AdPolicySelector Class  

package com.adobe.mediacore.timeline.advertising.policy {
    public interface AdPolicySelector {
        function 
        selectWatchedPolicyForAdBreak(adPolicyInfo:AdPolicyInfo):String;
        function selectPolicyForAdBreak(adPolicyInfo:AdPolicyInfo):String;
        function selectAdBreaksToPlay(adPolicyInfo:AdPolicyInfo):Vector.
        <AdBreakTimelineItem>;
        function selectPolicyForSeekIntoAd(adPolicyInfo:AdPolicyInfo):String;

    }

}

Interface AdPolicySelector {
    AdBreakWatchedPolicyselectWatchedPolicyForAdBreakCallbackFunc(AdPolicyInfo 
    adPolicyInfo);
    AdbreakPolicy selectPolicyForAdBreakCallbackFunc(AdPolicyInfo adPolicyInfo);
    Array.<AdBreakTimelineItem> selectAdBreaksToPlayCallbackFunc(AdPolicyInfo 
    adPolicyInfo);
   AdPolicy selectPolicyForSeekIntoAdCallbackFunc(AdPolicyInfo adPolicyInfo);

};

AdBreakMove

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.operations {
public class AdBreakMove extends TimelineOperation {
public function AdBreakMove(placement:Placement, 
adBreakTimelineItem:AdBreakTimelineItem, temporary:Boolean);
public function get adBreakTimelineItem():AdBreakTimelineItem;
public function get temporary():Boolean;

Class AdBreakMove {
AdBreakMove(AdBreakTimelineItem adBreakTimelineItem, AdBreakPlacement 
newPlacement);
readonly attribute AdBreakTimelineItem adBreakTimelineItem;
readonly attribute AdBreakPlacement newPlacement;
AdBreakTimelineItem getAdBreakTimelineItem();
AdBreakPlacement getNewPlacement();

}

AdBreakRemoval

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline.operations {
public class AdBreakRemoval extends TimelineOperation {
public function AdBreakRemoval(adBreak:AdBreak);
public function get adBreak():AdBreak;

}
}

Class AdBreakRemoval {
AdBreakRemoval(AdBreakTimelineItem adBreakTimelineItem);
readonly attribute AdBreakTimelineItem adBreakTimelineItem;
AdBreakTimelineItem getAdBreakTimelineItem();

}

TimedMetadata

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.metadata {
    public final class TimedMetadata {
        public static function createID3(time:Number, metadataID3:Metadata):TimedMetadata;
         
        public function TimedMetadata(type:String, time:Number, id:String, name:String, content:String, 
        metadata:Metadata);
        public function get type():String;
        public function get time():Number;
        public function get id():String;
        public function get name():String;
        public function get content():String;
        public function get metadata():Metadata;
        public function compareTo(timedMetadata:TimedMetadata):int;
        public function toString():String;
        public static const ASCENDING_SORT_FUNCTION:Function;
        
        }

}

Interface TimedMetadata {
    readonly attribute TimedMetadataType type; 
    readonly attribute long time;
    readonly attribute DomString id;
    readonly attribute DomString name;
    readonly attribute DomString content;
    readonly attribute Metadata metadata;
    int compareTo(TimedMetadata timedMetadata);
    Boolean equals(TimedMetadata 
    timedMetadata);

CustomRangeMetadata / CustomRangeType

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
CustomRangeMetadata  
(Does not exist in TVSDK 1.4 for DHLS)

Interface CustomRangeMetadata {
    attribute unsigned short type;
    attribute Boolean adjustSeekPosition;
    attribute Boolean adjustSeekPosition;

};

CustomRangeType Enum  
(Does not exist in TVSDK 1.4 for DHLS)

Enum CustomRangeType = {
    Enum CustomRangeType = {
    Enum CustomRangeType = {
    Enum CustomRangeType = {

};

Reservation

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline {
    public final class Reservation {
        public function Reservation(range:TimeRange);
        public function get range():TimeRange;
        public function get hold():Number;

        };

}

Interface Reservation {
    readonly attribute TimeRange range;
    readonly attribute long hold;

};

Timeline

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline {
    public interface Timeline {
        function get timelineMarkers():Vector.<TimelineMarker>;
        function get timelineItems():Vector.<AdTimelineItem>;
        function convertToLocalTime(time:Number):Number;
        function convertToVirtualTime(time:Number):Number;

    }

}

Interface Timeline {
    readonly attribute Array.<TimelineMarker> timelineMarkers;
    readonly attribute Array.<TimelineItem> timelineItems;    
    double convertToLocalTime(double time);
    double convertToVirtualTime(double time);
    Boolean checkIfPositionIsReserved(int position);

};

TimelineItem

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline {
    public class TimelineItem {
        public function TimelineItem(id:uint, virtualRange:TimeRange, localRange:TimeRange);
        public final function get id():uint;
        public final function get virtualRange():TimeRange;
        public final function get localRange():TimeRange;
        public function get watched():Boolean;
        public function get temporary():Boolean;

        }

}

Interface TimelineItem : TimelineMarker {
    readonly attribute long id;
    readonly attribute TimeRange virtualRange; 
    readonly attribute TimeRange localRange; 
    readonly attribute boolean watched; 
    readonly attribute boolean isTemporary;

TimelineMarker

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline {
    public interface TimelineMarker {
        function get time():Number;
        function get duration():Number;

    }

}

Interface TimelineMarker {
    readonly attribute double time;
    readonly attribute double duration;

};

ContentTracker

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

package com.adobe.mediacore.timeline {
    public interface ContentTracker {
        function onAdStart(ad: Ad):void;
        function onAdComplete(ad: Ad):void;
        function onAdProgress(ad: Ad, percent: Number):void;
        function onAdClick(ad: Ad):void;
        function onAdBreakStart(adBreak: AdBreak):void;
        function onAdBreakComplete(adBreak: AdBreak):void;
        function onAdError(ad: Ad):void;

    }

}

interface ContentTracker {
    void onAdStartCallbackFunc(Ad ad);
    void onAdCompleteCallbackFunc(Ad ad);
    void onAdProgressCallbackFunc(Ad ad, double progress);
    void onAdClickCallbackFunc(Ad ad);
    void onAdBreakStartCallbackFunc(AdBreak adBreak);
    void onAdBreakCompleteCallbackFunc(AdBreak adBreak);
    void onAdErrorCallbackFunc(Ad ad);

};

ContentResolver / ContentResolverClient

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
ConetentResolver Class  

package com.adobe.mediacore.timeline.resolvers {
    public class ContentResolver {
        public function ContentResolver();
        public final function get client():ContentResolverClient;
        public final function get context():MediaPlayerContext;
        public final function configure(item:MediaPlayerItem, context:MediaPlayerContext, 
        client:ContentResolverClient):void;
        protected function doConfigure(item:MediaPlayerItem):void;
        
        public final function canResolve(opportunity:Opportunity):Boolean;
        protected function doCanResolve(opportunity:Opportunity):Boolean;
        
        public final function resolve(opportunity:Opportunity):void;
        protected function doResolve(opportunity:Opportunity):void;
        

Interface ContentResolver {
    Interface ContentResolver {
    ContentResolverClient client);
    Boolean canResolveCallbackFunc(Opportunity opportunity);
    void resolveCallbackFunc(Opportunity opportunity);
    void cleanupCallbackFunc();

};

ContentResolverClient Class  

package com.adobe.mediacore.timeline.resolvers {
    public interface ContentResolverClient {
        function process(proposals:Vector.<TimelineOperation>):void;
        function notifyCompleted(opportunity:Opportunity):void;
        function notifyFailed(opportunity:Opportunity, mediaError:MediaError):void;
    
    }

}

Interface ContentResolverClient {
    void process(TimelineOperationList operations);
    void notifyCompleted(Opportunity opportunity);
    void notifyFailed(Opportunity opportunity, Notification notification);

};

CustomAdHandler / CustomAdHandlerClient

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
CustomAdHandler  
(Does not exist in DHLS 1.4)

Interface CustomAdHandler {
    void configureCallbackFunc(MediaPlayerItem item, CustomAdHandlerClient client);
    void initAdCallbackFunc(Ad ad);
    void startAdCallbackFunc(Ad ad);
    void pauseAdCallbackFunc(Ad ad);
    void resumeAdCallbackFunc(Ad ad);
    void stopAdCallbackFunc(Ad ad);
    void disposeCallbackFunc();

};

CustomAdHandlerClient  
(Does not exist in DHLS 1.4)

Interface CustomAdHandlerClient {
    void onAdBegin();
    void onAdPaused();
    void onAdResumed();
    void onAdError();
    void onAdEnd();
    void onAdProgress(double playHeadTime, double totalTime);
    void onAdClickThru();

};

Customization API element changes

These tables compare the customization API elements between TVDSK 1.4 for DHLS and Browser TVSDK 2.4.

Tables in this topic:

  • MediaPlayerItemConfig
  • ContentFactory
  • NetworkConfiguration
  • Tag Decoders/TagDecoderType

MediaPlayerItemConfig

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class MediaPlayerItemConfig {
    public function MediaPlayerItemConfig();
    public final function get advertisingMetadata():Metadata;
    public final function set advertisingMetadata(value:Metadata):void;
    public final function get advertisingFactory():ContentFactory;
    public final function set advertisingFactory(value:ContentFactory):void;
    public final function get subscribeTags():Vector.<String>;
    public final function set subscribeTags(value:Vector.<String>):void;
    public final function get adTags():Vector.<String>;
    public final function set adTags(value:Vector.<String>):void;
    public final function get timedMetadataFilter():TimedMetadataFilter;
    public final function set timedMetadataFilter(value:TimedMetadataFilter):void;
    public final function get networkConfiguration():NetworkConfiguration;
    public final function set networkConfiguration(value:NetworkConfiguration):void;
    public final function get useHardwareDecoder():Boolean;
    public final function set useHardwareDecoder(value:Boolean):void;

}
    

Class MediaPlayerItemConfig {
    MediaPlayerItemConfig();
    attribute AdvertisingMetadata advertisingMetadata;
    attribute ContentFactory advertisingFactory;
    attribute Array.<String> subscribeTags;
    attribute Array.<String> adTags;
    attribute TimedMetadataFilter timedMetadataFilter;
    attribute NetworkConfiguration networkConfiguration;
    attribute Boolean useHardwareDecoder;
    attribute MediaResourceFilter mediaResourceFilter;
    attribute CustomRangeMetadata customRangeMetadata;
    attribute AdSignalingMode adSignalingMode;
    attribute BillingMetricsConfiguration billingMetricsConfiguration;

   };

Important: The DefaultMediaPlayerItemConfig and MediaPlayerConfig class do not exist in Browser TVSDK 2.4.

ContentFactory

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class ContentFactory {
    public function ContentFactory();
    public final function retrieveResolvers(item:MediaPlayerItem):Vector.<ContentResolver>;
    protected function doRetrieveResolvers(item:MediaPlayerItem):Vector.<ContentResolver>;
    public final function retrieveGenerators(item:MediaPlayerItem):Vector.<OpportunityGenerator>;
    protected function 
    doRetrieveGenerators(item:MediaPlayerItem):Vector.<OpportunityGenerator>
    public final function 
    retrieveCustomAdPlaybackHandlers(item:MediaPlayerItem):Vector.<ICustomAdPlaybackHandler>;
    protected function 
    doRetrieveCustomAdPlaybackHandlers(item:MediaPlayerItem):Vector.<ICustomAdPlaybackHandler>;
    public final function 
    retrieveAdPolicySelector(item:MediaPlayerItem):AdPolicySelector;
    protected function 
    doRetrieveAdPolicySelector(item:MediaPlayerItem):AdPolicySelector;

interface ContentFactory {
    Array.<ContentResolver> retrieveResolversCallbackFunc(MediaPlayerItem item);
    Array.<OpportunityGenerator> retrieveOpportunityGeneratorsCallbackFunc(MediaPlayerItem item);
    Array.
    <CustomAdPlaybackHandler> retrieveCustomAdPlaybackHandlersCallbackFunc(MediaPlayerItem item);
    AdPolicySelector retrieveAdPolicySelectorCallbackFunc(MediaPlayerItem item);
  
}

Important: The DefaultContentFactory class does not exist in Browser TVSDK 2.4.

NetworkConfiguration

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class NetworkConfiguration extends Metadata {
    public function NetworkConfiguration();
    
    public function get customHeaders():Dictionary;
    public function addCustomHeader(headerName:String, headerData:Vector.<String>):void;
    public function get forceNativeNetworking():Boolean;
    public function set forceNativeNetworking(value:Boolean):void;
    public function get useRedirectedUrl():Boolean;
    public function set useRedirectedUrl(value:Boolean):void;
    public function get useCookieHeaderForAllRequests():Boolean;
    public function set useCookieHeaderForAllRequests(value:Boolean):void;
    public function get cookieHeaders():Metadata;
    public function set cookieHeaders(metadata:Metadata):void;
    public function get readSetCookieHeader():Boolean;
    public function set readSetCookieHeader(bValue:Boolean);
    public function get masterUpdateInterval():int;
    public function set masterUpdateInterval(nMinutes:int):void;

}

Class NetworkConfiguration {
    NetworkConfiguration();

    object getCustomHeaders(String domainName);
    void addCustomHeader(String domainName, object headerKeyValue);
    attribute boolean forceNativeNetworking;
    attribute boolean useRedirectedUrl;
    attribute boolean useCookieHeaderForAllRequests;
    attribute Object cookieHeaders;
    attribute boolean readSetCookieHeader;
    attribute int masterUpdateInterval; 
    attribute int readLimit;
    attribute int numFragmentsToTryBeforeError;

};

Tag Decoders

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
TagDecoder

public class TagDecoder {
    public function TagDecoder();
    public final function process(content:String):Metadata;
    protected function doProcess(content:String):Metadata;

}

Class TagDecoder {
     TagDecoder(TagDecoderType type);
     Metadata process(String content);

}

Important: The DefaultTextTagDecoder and DefaultSCTE35TagDecoder classes do not exist in Browser TVSDK 2.4.

TagDecoderType Enum
(Does not exist in DHLS 1.4.)

Enum TagDecoderType {
    const unsigned short SCTE35 = 0;
    const unsigned short TEXT = 1; 
    const unsigned short UNKNOWN = 2;

};

DRM API element changes

These tables compare the customization API elements between TVDSK 1.4 for DHLS and Browser TVSDK 2.4.

Tables in this topic:

  • DRMAcquireLicenseSettings / DRMAuthenticationMethod
  • DRMMetadata
  • DRMPlaybackTimeWindow
  • DRMLicense
  • DRMLicenseDomain
  • DRMPolicy
  • DRMManager

DRMAcquireLicenseSettings / DRMAuthenticationMethod

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
DRMAcquireLicenseSettings Enum

public class LoadVoucherSetting extends Object {
    public static const FORCE_REFRESH:String = "forceRefresh"; 
    public static const LOCAL_ONLY:String = "localOnly"; 
    public static const ALLOW_SERVER:String = "allowServer";
    public function LoadVoucherSetting ():*;

}

enum DRMAcquireLicenseSettings {
    const unsigned short FORCE_REFRESH = 0;
    const unsigned short LOCAL_ONLY = 1;
    const unsigned short LOCAL_ONLY = 1;
    const unsigned short ALLOW_SERVER = 2;

    };

DRMAuthenticationMethod Enum

public class AuthenticationMethod extends Object {
    public static const ANONYMOUS:String = "anonymous";
    public static const USERNAME_AND_PASSWORD:String = "usernameAndPassword";
    public function AuthenticationMethod ():*;

}

Enum DRMAuthenticationMethod {
    const unsigned short UNKNOWN = 0 ;
    const unsigned short ANONYMOUS = 1 ;
    const unsigned short USERNAME_AND_PASSWORD = 2 ;

}

DRMMetadata

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMContentData extends Object {
    public function DRMContentData (rawData:ByteArray = null):*;
    public function get authenticationMethod () : String;
    public function get domain () : String;
    public function get licenseID () : String;
    public function get serverURL () : String;

};

Class DRMMetadata {
    DRMMetadata();
    readonly attribute String serverUrl;
    readonly attribute String licenseId;
    readonly attribute Array.<DRMPolicy> policies;   

};

DRMPlaybackTimeWindow

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMPlaybackTimeWindow extends Object {
    public function DRMPlaybackTimeWindow ():*;
    public function get period () : uint; 
    public function get startDate () : Date; 
    public function get endDate () : Date;

}

Class DRMPlaybackTimeWindow {
    DRMPlaybackTimeWindow ();
    readonly attribute int playbackPeriodInSeconds;
    readonly attribute Date playbackStartDate;
    readonly attribute Date playbackEndDate;
    
};

DRMLicense

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMVoucher extends Object { 
    public function DRMVoucher ():*;

    public function toByteArray():ByteArray;
    public function get serverURL () : String;
    public function get voucherEndDate () : Date;
    public function get voucherStartDate () : Date;
    public function get offlineLeaseEndDate () : Date;
    public function get offlineLeaseStartDate () : Date;
    public function get licenseID () : String;
    public function get policies () : Object
    public function get policyID () : String;
     function get playbackTimeWindow () : DRMPlaybackTimeWindow;

};

Class DRMLicense {


    Array toBytes();
    readonly attribute String serverUrl;
    readonly attribute Date licenseStartDate;
    readonly attribute Date licenseEndDate;
    readonly attribute Date offlineStorageStartDate;
    readonly attribute Date offlineStorageEndDate;   
    readonly attribute Date offlineStorageEndDate;   
    readonly attribute String policyID;
    readonly attribute DRMPlaybackTimeWindow playbackTimeWindow;
    readonly attribute Object customProperties;
    readonly attribute Array bytes;

};  

DRMLicenseDomain

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMDeviceGroup extends Object {
    public function DRMDeviceGroup ():*;

    public function get serverURL() : String;
    public function get authenticationMethod() : String;  
    public function get domain() : String;

    public function get name() : String;
    public function set name(value:String) : void;
};

 

Class DRMLicenseDomain {
    DRMLicenseDomain ();

    readonly attribute String serverUrl;
    readonly attribute DRMAuthenticationMethodauthenticationMethod;   
    readonly attribute String authenticationDomain;

};

DRMPolicy

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMVoucherAccessInfo extends Object {
    public function DRMVoucherAccessInfo (); 

    public function get domain() : String;     
    public function get authenticationMethod() : String;
    public function get displayName() : String;

    public function get deviceGroup() : DRMDeviceGroup;
    public function get policyID () : String;
};

 

Class DRMPolicy {
     DRMPolicy();

    readonly attribute String authenticationDomain;
    readonly attribute DRMAuthenticationMethodauthenticationMethod;
    readonly attribute String displayName;

    readonly attribute DRMLicenseDomain licenseDomain;
};

DRMManager

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMManager extends EventDispatcher implements 
IManager {
    public function DrmManager():*;
    public function setAuthenticationToken(serverUrl:String, domain:String, token:ByteArray):void;
    public function authenticate(serverURL:String, domain:String, username:String, password:String):void;
    public function
        loadPreviewVoucher(contentData:DRMContentData):void;
    public function loadVoucher(contentData:DRMContentData, 
        setting:String):void;
    public function resetDRMVouchers():void;
    public function resetDRMVouchersInternal(isAutoReset:Boolean):void;
    public function returnVoucher(inServerURL:String, 
        immediateCommit:Boolean, licenseID:String, policyID:String):void;
    public function storeVoucher(voucher:ByteArray):void;
    public static function get isSupported():Boolean;
    public static function get networkIdleTimeout():Number;
    public static function set networkIdleTimeout(value:Number):void;
    public function addToDeviceGroup(deviceGroup:DRMDeviceGroup, 
        forceRefresh:Boolean = false):void;
    public function 
       removeFromDeviceGroup(deviceGroup:DRMDeviceGroup):void;
    public static function getDRMManager():DRMManager;
    public static function getDRMManagerInternal():DRMManager;

}

Class DRMManager : EventTarget {


    void setAuthenticationToken(DRMMetadata metadata, String 
        authenticationDomain, ByteArray token, DRMOperationCompleteListener listener);
    void authenticate(DRMMetadata metadata, String url, String 
        authenticationDomain, String user, String password, 
        DRMAuthenticateListener listener);
    void acquireLicense(DRMMetadata metadata, DRMAcquireLicenseSettings setting, 
        DRMAquireLicenseListener listener);
    void acquirePreviewLicense(DRMMetadata metadata,DRMAquireLicenseListener
        listener);
    DRMMetadata createMetadataFromBytes(ByteArray array,DRMErrorListener listener);
    void initialize(DRMOperationCompleteListener listener);
    void joinLicenseDomain(DRMLicenseDomain 
        licenseDomain,boolean forceRefresh, DRMOperationCompleteListener listener);
        void leaveLicenseDomain(DRMLicenseDomain licenseDomain,
        DRMOperationCompleteListener listener);
    void resetDRM(DRMOperationCompleteListener listener);
       void returnLicense(String serverURL, String licenseID, String policyID, 
        boolean commitImmediately, DRMReturnLicenseListener listener);
    void storeLicenseBytes(ByteArray licenseBytes,DRMOperationCompleteListener listener);
    
    readonly attribute PSDKEventDispatcher eventDispatcher;
    attribute int maxOperationTime;

}

Event class changes

These tables compare the customization API elements between TVDSK 1.4 for DHLS and Browser TVSDK 2.4.

Tables in this topic:

  • NotificationEvent
  • MediaPlayerStatusChangeEvent
  • TimeChangeEvent
  • ProfileEvent
  • SizeAvailableEvent
  • PlaybackRateEvent
  • TimelineEvent
  • LoadInformationEvent
  • DRMMetadataInfoEvent
  • TimedMetadataEvent
  • AdBreakPlaybackEvent
  • AdPlaybackEvent
  • AdClickEvent
  • BufferEvent
  • SeekEvent
  • MediaPlayerItemEvent

NotificationEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class NotificationEvent extends Event {
    public static const WARNING_AVAILABLE:String = "warningAvailable";
    public static function create(type:String, notification:Notification):NotificationEvent;
    public function NotificationEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, 
        notification:Notification= null);
    public function get notification():Notification;
    public override function clone():Event; 

}

Class NotificationEvent extends PSDKEvent{
NotificationEvent (MediaPlayer.Events type, Notification notification, 
Object target);
readonly attribute Notification notification;
OPERATION_FAILED = AdobePSDK.PSDKEventType.OPERATION_FAILED;

MediaPlayerStatusChangeEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class MediaPlayerStatusChangeEvent extends Event {
public static const STATUS_CHANGED:String = "statusChanged";
public static function create(status:String, error:MediaError):MediaPlayerStatusChangeEvent;

public function MediaPlayerStatusChangeEvent(type:String, bubbles:Boolean=false, 
cancelable:Boolean=false, status:String=null, error:MediaError=null);


public function get status():String;
public function get error():MediaError;

public override function clone():Event ;

}

Class MediaPlayerStatusChangeEvent extends PSDKEvent {



MediaPlayerStatusChangeEvent(Number status,Object target, Metadata metadata);
readonly attribute String status;
readonly attribute String metadata;

readonly attribute Notification error;
STATUS_CHANGED = AdobePSDK.PSDKEventType.STATUS_CHANGED;




}

TimeChangeEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class TimeChangeEvent extends Event {

public static const TIME_CHANGED:String = "timeChanged";
public static function create(time:Number):TimeChangeEvent ;public function TimeChangeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,
    time:Number = 0); 
public function get time():Number;
public override function clone():Event;

}

Class NotificationEvent extends PSDKEvent{
TimeChangeEvent(Number time, Object target);
readonly attribute Number time;;
TIME_CHANGED = AdobePSDK.PSDKEventType.TIME_CHANGED;

}

ProfileEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class ProfileEvent extends Event {
public static const PROFILE_CHANGED:String = "profileChanged";
public static const EMPTY_DESCRIPTION:String = "Not available";
public static function create(profile:int, time:Number, width:int, height:int, description:String = EMPTY_DESCRIPTION):ProfileEvent;
public function ProfileEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, profile:int = 0, time:Number = 0, width:int = 0, height:int = 0, description:String = EMPTY_DESCRIPTION);
public function get profile():int;
public function get time():Number;
public function get description():String;
public function get width():int;
public function get height():int ;
public override function clone():Event;

}

Class ProfileEvent extends PSDKEvent {

ProfileEvent(Profile profile, MediaPlayer.events type, Object target);
readonly attribute Profile profile;
readonly attribute String codecs;
readonly attribute Boolean isAudioOnly;
readonly attribute Boolean isIFrame;
readonly attribute Number profileIndex;
readonly attribute Profile skipFactor;
PROFILE_CHANGED = AdobePSDK.PSDKEvent.PROFILE_CHANGED;

}

SizeAvailableEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class SizeAvailableEvent extends Event {
public static const SIZE_AVAILABLE:String = "sizeAvailable";
public static const SIZE_UNKNOWN:int = -1;
public static function create(width:int, height:Number):SizeAvailableEvent;
public function SizeAvailableEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, width:int = 0, height:int = 0);
public function get width():int;
public function get height():int;
public override function clone():Event;
}

Class SizeAvailableEvent extends PSDKEvent {

SizeAvailableEvent(Number height, Number width, MediaPlayer target);
readonly attribute Number height;
readonly attribute Number width;

}

PlaybackrateEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class PlaybackRateEvent extends Event {
public static const RATE_SELECTED:String = "rateSelected";
public static const RATE_PLAYING:String = "ratePlaying";
public static function create(type:String, rate:Number):PlaybackRateEvent;
public function PlaybackRateEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, rate:Number = NaN);
public override function clone():Event;

public function get rate():Number;

}

Class PlaybackRateEvent extends PSDKEvent {
}
PlaybackRateEvent(MediaPlayer.Events type, Number rate, Object target);
readonly attribute Number rate;


RATE_PLAYING = AdobePSDK.PSDKEventType.RATE_PLAYING;
RATE_SELECTED = AdobePSDK.PSDKEventType.RATE_SELECTED;

}

TimelineEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class TimelineEvent extends Event {
public static const TIMELINE_UPDATED:String = "timelineUpdated";
public static const TIMELINE_UPDATED:String = "timelineUpdated";
public static const TIMELINE_DETACHED:String = "timelineDetachCompleted";
public static function create(type:String, timeline:Timeline):TimelineEvent;
public function TimelineEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, timeline:Timeline=null);
public function get timeline():Timeline;
public override function clone():Event;

}

Class TimelineEvent extends PSDKEvent {
TimelineEvent(MediaPlayer.Events type, Timeline timeline, Object target);
readonly attribute Timeline timeline;
TIMELINE_UPDATED = AdobePSDK.PSDKEventType.TIMELINE_UPDATED;

}

LoadInformationEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class LoadInformationEvent extends Event {
public static const LOAD_INFORMATION_AVAILABLE:String = "loadInformationAvailable";
public static function create(type:String, loadInformation:LoadInformation):LoadInformationEvent;
public function LoadInformationEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, loadInformation:LoadInformation = null);
public function get loadInformation():LoadInformation;
public override function clone():Event;
}

Class LoadInformationEvent extends PSDKEvent {
LoadInformationEvent (Object type, Object loadInfo, Object target);
readonly attribute LoadInformation loadInformation;
LOAD_INFORMATION_AVAILABLE = AdobePSDK.PSDKEventType.LOAD_INFORMATION_AVAILABLE;

}

DRMMetadataInfoEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DRMMetadataInfoEvent extends Event {
public static const DRM_METADATA_INFO_AVAILABLE:String = "drmMetadataInfoAvailable";
public static function create(type:String, drmMetadataInfo:DRMMetadataInfo):DRMMetadataInfoEvent;
public function DRMMetadataInfoEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, drmMetadataInfo:DRMMetadataInfo=null);
public function get drmMetadataInfo():DRMMetadataInfo;
public override function clone():Event;

}

Class DRMMetadataInfoEvent extends PSDKEvent {
DRMMetadataInfoEvent (DRMMetadataInfo info, MediaPlayer target));
readonly attribute DRMMetadataInfo drmMetadataInfo;

}

TimedMetadataEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class TimedMetadataEvent extends Event {
public static const TIMED_METADATA_IN_BACKGROUND_AVAILABLE:String = "timedMetadataInBackgroundAvailable";
public static const TIMED_METADATA_SKIPPED:String = "timed-metadata-skipped";
public static const TIMED_METADATA_ID3_ADDED:String = "timed-metadata-id3-added";
public static function create(timedMetadata:TimedMetadata):TimedMetadataEvent;
public static function createForBackground(timedMetadata:TimedMetadata):TimedMetadataEvent;
public function TimedMetadataEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, timedMetadata:TimedMetadata = null);
public function get timedMetadata():TimedMetadata;
public override function clone():Event;
}

Class TimedMetadataEvent extends PSDKEvent {
TimedMetadataEvent(MediaPlayer.Events type, TimedMetadata timedMetadata, Object target);
readonly attribute TimedMetadata timedMetadata;
TIMED_METADATA_AVAILABLE = AdobePSDK.PSDKEventType.TIMED_METADATA_AVAILABLE;
TIMED_METADATA_IN_BACKGROUND = AdobePSDK.PSDKEventType.TIMED_METADATA_IN_BACKGROUND;

}

AdBreakPlaybackEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class AdBreakPlaybackEvent extends Event
public static const AD_BREAK_STARTED:String = "adBreakStarted";
public static const AD_BREAK_COMPLETED:String = "adBreakCompleted";
public static const AD_BREAK_SKIPPED:String = "adBreakSkipped";
public static function create(type:String, adBreak:AdBreak):AdBreakPlaybackEvent;
public function AdBreakPlaybackEvent(type:String, bubbles:Boolean, cancelable:Boolean, adBreak:AdBreak);
public function get adBreak():AdBreak;
override public function clone():Event;

}

Class AdBreakPlaybackEvent extends PSDKEvent {
AdBreakPlaybackEvent(MediaPlayer.Events type, AdBreak adBreak, MediaPlayer target);
readonly attribute AdBreak adBreak;

}

AdPlaybackEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class AdPlaybackEvent extends Event {
public static const AD_STARTED:String = "adStart"
public static const AD_PROGRESS:String = "adProgress";
public static const AD_SEEK:String = "adSeek";
public static const AD_COMPLETED:String = "adComplete";
public static const AD_SKIPPABLE_STATE_CHANGED:String = "adSkippableStateChanged";
public function AdPlaybackEvent(type:String,bubbles:Boolean=false,
    cancelable:Boolean=false,adBreak:AdBreak = null,ad:Ad = null,
    progress:Number = 0,time:Number = 0,rate:Number = 1.0);
public function get adBreak():AdBreak;
public function get ad():Ad;
public function get progress():Number;
public function get rate():Number;
public function get time():Number;
override public function clone():Event;

}

Class AdPlaybackEvent extends PSDKEvent {
AdPlaybackEvent(MediaPlayer.Events type, AdBreak adBreak, Ad ad, Number progress, Number rate, Number time, MediaPlayer target);
readonly attribute AdBreak adBreak;
readonly attribute Ad ad;
readonly attribute Number progress;
readonly attribute Number rate;
readonly attribute Number time;

AD_COMPLETED = AdobePSDK.PSDKEventType.AD_COMPLETED;
AD_PROGRESS = AdobePSDK.PSDKEventType.AD_PROGRESS;
AD_STARTED = AdobePSDK.PSDKEventType.AD_STARTED;

}

AdClickEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class AdClickEvent extends Event {
public static const AD_CLICK:String = "adClick";
public static function create(adBreak:AdBreak, ad:Ad, adClick:AdClick, playerHandlesAdClick:Boolean = true):AdClickEvent;
public function get adBreak():AdBreak;
public function get ad():Ad;
public function get adClick():AdClick ;
public function get playerHandlesAdClick():Boolean;
override public function clone():Event;

}

Class AdClickEvent extends PSDKEvent {
AdClickEvent (MediaPlayer.Events type, AdBreak adBreak, Ad ad, AdClick adClick, MediaPlayer target);
readonly attribute AdBreak adBreak;
readonly attribute Ad ad;
readonly attribute AdClick adClick;

AD_CLICK = AdobePSDK.PSDKEventType.AD_CLICK;



}

BufferEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class BufferEvent extends Event {
public static const BUFFERING_BEGIN:String = "bufferingStart";
public static const BUFFERING_END:String = "bufferingEnd";
public function BufferEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false);
override public function clone():Event;

}

Class BufferEvent extends PSDKEvent {
BufferEvent(MediaPlayer.Events type, MediaPlayer target);


}

SeekEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class SeekEvent extends Event {
public static const SEEK_POSITION_ADJUSTED:String = "seekPositionAdjusted";
public static const SEEK_BEGIN:String = "seekBegin";
public static const SEEK_END:String = "seekEnd";
public static function create(type:String, desiredPosition:Number, actualPosition:Number, local:Boolean):SeekEvent;
public function SeekEvent(type:String, bubbles:Boolean, cancelable:Boolean, desiredPosition:Number, actualPosition:Number, local:Boolean);
public function get desiredPosition():Number;
public function get actualPosition():Number;
public function get local():Boolean;
override public function clone():Event;

}

Class SeekEvent extends PSDKEvent {
SeekEvent(MediaPlayer.Events type, Number desiredPosition, Number actualPosition, Boolean local, MediaPlayer target);
readonly attribute Number desiredPosition;
readonly attribute Number actualPosition;
readonly attribute Boolean isLocal;

SEEK_BEGIN = AdobePSDK.PSDKEventType.SEEK_BEGIN;
SEEK_END = AdobePSDK.PSDKEventType.SEEK_END;
SEEK_POSITION_ADJUSTED = AdobePSDK.PSDKEventType.SEEK_POSITION_ADJUSTED;


}

MediaPlayerItemEvent

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class MediaPlayerItemEvent extends Event{
public static const ITEM_CREATED:String = "itemCreated";
public static const ITEM_UPDATED:String = "itemUpdated";
public static const CAPTION_UPDATED:String = "captionUpdated";
public static const MASTER_UPDATED:String = "masterUpdated";
public static const AUDIO_UPDATED:String = "audioUpdated";
public static function create(type:String, item:MediaPlayerItem):MediaPlayerItemEvent;
public function MediaPlayerItemEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, item:MediaPlayerItem=null);
public function get item():MediaPlayerItem;
public override function clone():Event;

}

Class MediaPlayerItemEvent extends PSDKEvent {
MediaPlayerItemEvent(MediaPlayerItem item, MediaPlayer.Events type, Object target);
readonly attribute MediaPlayerItem item;


AUDIO_UPDATED = AdobePSDK.PSDKEventType.AUDIO_UPDATED,
CAPTIONS_UPDATED = AdobePSDK.PSDKEventType.CAPTIONS_UPDATED,
ITEM_CREATED = AdobePSDK.PSDKEventType.ITEM_CREATED,
ITEM_UPDATED = AdobePSDK.PSDKEventType.ITEM_UPDATED,
MASTER_UPDATED = AdobePSDK.PSDKEventType.MASTER_UPDATED

}

Generic playback API element changes

These tables compare the customization API elements between TVDSK 1.4 for DHLS and Browser TVSDK 2.4.

Tables in this topic:

  • MediaResource / MediaResourceType
  • MediaResourceFilter
  • MediaPlayer
  • MediaPlayerView
  • TextFormat
  • ABRControlParameters
  • BufferControlParameters
  • MediaPlayerItemLoader

MediaResource / MediaResourceType

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class MediaResource {
    public static function createFromUrl(url:String, metadata:Metadata):MediaResource;
    public static function createFromMetadata(metadata:Metadata, type:String):MediaResource;
    public function MediaResource(url:String, type:String, metadata:Metadata);
    public function get url():String;
    public function get type():String;
    public function get metadata():Metadata;
    public function equals(otherMediaResource:MediaResource):Boolean;
    public function toString():String; 

}

Class MediaResource {
    MediaResource(String url, unsigned short type, Object metadata, Boolean forceFlash);
    readonly attribute String url;  
    readonly attribute MediaResourceType type;
    readonly attribute Metadata metadata;
    readonly attribute Boolean isValid;
    Boolean equals( MediaResource otherMediaResource);
    String toString();

MediaResourceFilter

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class MediaResourceFilter {
public function MediaResourceFilter();
public final function isSupported(url:String, type:String, resourceType:String):Boolean;
public final function createMediaResource(url:String, type:String, metadata:Metadata):MediaResource;


};

Class MediaResourceFilter {
MediaResourceFilter();
Boolean isSupported(MediaResource resource, MediaResource.Intent intent, MediaResourceType contentType);

};

MediaPlayer

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class DefaultMediaPlayer extends EventDispatcher implements MediaPlayer{
public function DefaultMediaPlayer(context:MediaPlayerContext);
function registerCurrentItemAsBackgroundItem():void;
function unregisterCurrentBackgroundItem():void;
function prepareToPlay(... args):void;
function play():void;
function clearVideo():void;
function pause():void;
function seek(position:Number):void;
function seekToLocal(position:Number):void;
function reset():void;
function release():void;
function replaceCurrentResource(mediaResource:MediaResource, config:MediaPlayerItemConfig = null):void;
function replaceCurrentItem(mediaPlayerItem:MediaPlayerItem):void;
function convertToLocalTime(time:Number):Number;







function get currentTime():Number;
function get localTime():Number;
function get playbackRange():TimeRange;
function get seekableRange():TimeRange;
function get bufferedRange():TimeRange;
function get playbackMetrics():PlaybackMetrics;
function get timeline():Timeline;
function get currentItem():MediaPlayerItem;
function get status():String;
function get drmManager():DRMManager;
function get context():MediaPlayerContext;

function get view():MediaPlayerView;
function set view(view:MediaPlayerView):void;

function get volume():Number;
function set volume(volume:Number):void;

function get rate():Number;
function set rate(rate:Number):void;

function get bufferControlParameters():BufferControlParameters;
function set bufferControlParameters(params:BufferControlParameters):void;

function get abrControlParameters():ABRControlParameters;
function set abrControlParameters(params:ABRControlParameters):void

function get ccVisibility():String;
function set ccVisibility(visibility:String):void;

function get ccStyle():ClosedCaptionStyles;
function set ccStyle(styles:ClosedCaptionStyles):void;

function get currentTimeUpdateInterval():uint;
function set currentTimeUpdateInterval(value:uint):void;
function set currentTimeUpdateInterval(value:uint):void;
function set config(value:MediaPlayerConfig):void;

const int LIVE_POINT = -2; 

};

Class MediaPlayer {
MediaPlayer();
void registerCurrentItemInBackground(MediaPlayerItemConfig config);
void unregisterCurrentBackgroundItem();
void prepareToPlay(double position);
void play();
void pause();
void seek( double position);
void seekToLocal( double position);
void reset();
void release();
void replaceCurrentResource(MediaResource resource, MediaPlayerItemConfig config);
void replaceCurrentItem(MediaPlayerItem item);


void prepareBuffer();
void suspend();
void restore();
void notifyClick();
void addEventListener(int eventType, Function eventListener);
void removeEventListener(int eventType, Function eventListener);

readonly attribute double currentTime;
readonly attribute double localTime;
readonly attribute TimeRange playbackRange;
readonly attribute TimeRange seekableRange;
readonly attribute TimeRange bufferedRange;
readonly attribute PlaybackMetrics playbackMetrics;
readonly attribute Timeline timeline;
readonly attribute MediaPlayerItem currentItem;
readonly attribute unsigned short status;
readonly attribute DRMManager drmManager;
attribute MediaPlayerContext context;
attribute MediaPlayerView view;  
attribute double volume;
attribute double rate;
attribute BufferControlParameters bufferControlParameters;
attribute ABRControlParameters abrControlParameters;
attribute unsigned short ccVisibility;
attribute TextFormat ccStyle;
attribute double currentTimeUpdateInterval;



















const short LIVE_POINT = -2;
const unsigned short DEFAULT_VOLUME = 1;
const unsigned short VISIBLE = 0; //For CC visibility
const unsigned short INVISIBLE = 1; //For CC invisibility




};

MediaPlayerView

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class MediaPlayerView extends Sprite {
    public static function create(stageVideo:StageVideo):MediaPlayerView;
    public function MediaPlayerView(stageVideo: StageVideo);
    public function notifyClick():void; 
    public function markForRefresh():void;


    public override function set x(value: Number):void;
    public override function set y(value: Number):void;
    public override function set width(value: Number):void;
    public override function set height(value: Number):void;
    public function get scalePolicy():MediaPlayerViewScalePolicy;
    public function set scalePolicy(value: MediaPlayerViewScalePolicy):void;
    public final function get stageVideo():StageVideo;


}

Class MediaPlayerView {
    MediaPlayerView create(stageVideo:StageVideo);
    MediaPlayerView(Object videoDiv, Object fullScreenDiv);
    void setSize(unsigned short width, unsigned short height);
    void setPos(unsigned short x, unsigned short y);
    void markForRefresh();

    attribute unsigned short x;
    attribute unsigned short y;
    attribute unsigned short width;
    attribute unsigned short height;
    readonly attribute unsigned short depth;
    attribute MediaPlayerViewScalePolicy scalePolicy;
    void attachVideoControls(Object element);
    void removeVideoControls();
    unsigned short getX();
    unsigned short getY();
    unsigned short getWidth();
    unsigned short getHeight();
    unsigned short getDepth();
    void setDepth(unsigned short depth);
    void makeFullScreen();
    void exitFullScreen();
    Boolean isFullScreen();
    short getNativeSurfaceType();
    void hideBackgroundImage();

};

TextFormat

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class TextFormat {

public function TextFormat(font:String = "default", size:String = "default", fontEdge:String = "default", fontColor:String = "default", backgroundColor:String = "default", fillColor:String = "default", edgeColor:String = "default", fontOpacity:int = DEFAULT_OPACITY, backgroundOpacity:int = DEFAULT_OPACITY, fillOpacity:int = DEFAULT_OPACITY);






public function get font():String;
public function get size():String;
public function get fontColor():String;
public function get fontEdge():String;
public function get edgeColor():String;
public function get backgroundColor():String;
public function get fillColor():String;
public function get fontOpacity():int;
public function get backgroundOpacity():int;
public function get fillOpacity():int;
public function toString():String;
public function isEqual(other:TextFormat):Boolean;

public static const DEFAULT_OPACITY:int = -1;

};

Class TextFormat {
public function TextFormat(unsigned short eFont, unsigned short eFontColor, 
unsigned short eEdgeColor, unsigned short eFontEdge, 
unsigned short eBackgroundColor, unsigned short eFillColor, 
unsigned short eSize, unsigned short nFontOpacity, 
unsigned short nBackgroundOpacity, unsigned short nFillOpacity, String 
sBottomInset, String sSafeArea);



attribute unsigned short font;
attribute unsigned short size;
attribute unsigned short fontEdge;
attribute unsigned short fontColor;
attribute unsigned short backgroundColor;
attribute unsigned short fillColor;
attribute unsigned short edgeColor;
attribute unsigned short fontOpacity;
attribute unsigned short backgroundOpacity;
attribute unsigned short fillOpacity;
attribute String bottomInset;
attribute String safeArea;

const unsigned short DEFAULT_OPACITY = -1;

// Font
const unsigned short FONT_DEFAULT =   0   ;
const unsigned short MONOSPACED_WITH_SERIFS = 1 ;
const unsigned short PROPORTIONAL_WITH_SERIFS = 2 ;
const unsigned short MONSPACED_WITHOUT_SERIFS = 3 ;
const unsigned short PROPORTIONAL_WITHOUT_SERIFS = 4 ;
const unsigned short CASUAL = 5;
const unsigned short CURSIVE = 6;
const unsigned short SMALL_CAPITALS = 7;

//Color
const unsigned short SMALL_CAPITALS = 7;
const unsigned short BLACK = 1 ;
const unsigned short GRAY = 2 ;
const unsigned short WHITE = 3 ;
const unsigned short BRIGHT_WHITE = 4 ;
const unsigned short DARK_RED = 5 ;
const unsigned short RED = 6 ;
const unsigned short BRIGHT_RED = 7 ;
const unsigned short DARK_GREEN = 8 ;
const unsigned short GREEN = 9 ;
const unsigned short BRIGHT_GREEN = 10 ;
const unsigned short DARK_BLUE = 11 ;
const unsigned short BLUE = 12 ;
const unsigned short BRIGHT_BLUE = 13 ;
const unsigned short DARK_YELLOW = 14 ;
const unsigned short YELLOW = 15 ;
const unsigned short BRIGHT_YELLOW = 16 ;
const unsigned short DARK_MAGENTA = 17 ;
const unsigned short MAGENTA = 18 ;
const unsigned short BRIGHT_MAGENTA = 19 ;
const unsigned short DARK_CYAN = 20 ;
const unsigned short CYAN = 21 ;
const unsigned short BRIGHT_CYAN = 22 ;

//Size
const unsigned short BRIGHT_CYAN = 22 ;
const unsigned short SMALL = 1 ;
const unsigned short MEDIUM = 2 ;
const unsigned short MEDIUM = 2 ;


//FontEdge
const unsigned short FONT_EDGE_DEFAULT =   0   ;
const unsigned short NONE = 1 ;
const unsigned short RAISED = 2 ;
const unsigned short DEPRESSED = 3 ;
const unsigned short UNIFORM = 4 ;
const unsigned short DROP_SHADOW_LEFT = 5 ;
const unsigned short DROP_SHADOW_RIGHT = 6 ;

};

public class ClosedCaptionStyles {
public static const FONT:Array = [
AVCaptionStyle.DEFAULT,
AVCaptionStyle.MONOSPACE_WITH_SERIFS,
AVCaptionStyle.MONOSPACED_WITHOUT_SERIFS,
AVCaptionStyle.PROPORTIONAL_WITH_SERIFS,
AVCaptionStyle.PROPORTIONAL_WITHOUT_SERIFS,
AVCaptionStyle.CASUAL, AVCaptionStyle.CURSIVE,
AVCaptionStyle.SMALL_CAPITALS
]

public static const COLOR:Array = [
AVCaptionStyle.DEFAULT,
AVCaptionStyle.BLACK,
AVCaptionStyle.GRAY,
AVCaptionStyle.WHITE,
AVCaptionStyle.BRIGHT_WHITE,
AVCaptionStyle.RED,
AVCaptionStyle.DARK_RED,
AVCaptionStyle.BRIGHT_RED,
AVCaptionStyle.GREEN,
AVCaptionStyle.DARK_GREEN,
AVCaptionStyle.BRIGHT_GREEN,
AVCaptionStyle.BLUE,
AVCaptionStyle.DARK_BLUE,
AVCaptionStyle.BRIGHT_BLUE,
AVCaptionStyle.YELLOW,
AVCaptionStyle.DARK_YELLOW,
AVCaptionStyle.BRIGHT_YELLOW,
AVCaptionStyle.MAGENTA,
AVCaptionStyle.DARK_MAGENTA,
AVCaptionStyle.BRIGHT_MAGENTA,
AVCaptionStyle.CYAN,
AVCaptionStyle.DARK_CYAN,
AVCaptionStyle.BRIGHT_CYAN
];

public static const FONT_SIZE:Array = [
AVCaptionStyle.DEFAULT,
AVCaptionStyle.SMALL,
AVCaptionStyle.MEDIUM,
AVCaptionStyle.LARGE
];

public static const FONT_EDGE:Array = [
AVCaptionStyle.DEFAULT,
AVCaptionStyle.NONE,
AVCaptionStyle.RAISED,
AVCaptionStyle.DEPRESSED,
AVCaptionStyle.UNIFORM,
AVCaptionStyle.LEFT_DROP_SHADOW,
AVCaptionStyle.RIGHT_DROP_SHADOW
];

public function ClosedCaptionStyles(font:Number, fontColor:Number, edgeColor:Number, fontEdge:Number, backgroundColor:Number,
fillColor:Number, size:Number, fontOpacity:String, backgroundOpacity:String, fillOpacity:String, bottomInset:String);

public function get font():int;
public function get size():int;
public function get fontColor():int;
public function get fontEdge():int;
public function get edgeColor():int;
public function get fontOpacity():String;
public function get backgroundColor():int;
public function get backgroundOpacity():String;
public function get fillColor():int;
public function get fillOpacity():String;
public function get bottomInset():String;
public function isEqual(other:ClosedCaptionStyles):Boolean;

}

(Does not exist in Browser TVSDK 2.4)

public final class ClosedCaptionStylesBuilder {

public function ClosedCaptionStylesBuilder();
public function get font():int;
public function set font(value:int):void;
public function get size():int;
public function set size(value:int):void;
public function get fontColor():int;
public function set fontColor(value:int):void;
public function get fontEdge():int;
public function set fontEdge(value:int):void;
public function get edgeColor():int;
public function set edgeColor(value:int):void;
public function get fontOpacity():String;
public function set fontOpacity(value:String):void;
public function get backgroundColor():int;
public function set backgroundColor(value:int):void;
public function get backgroundOpacity():String;
public function set backgroundOpacity(value:String):void;
public function get fillColor():int;
public function set fillColor(value:int):void;
public function get fillOpacity():String;
public function set fillOpacity(value:String):void;
public function get bottomInset():String;
public function set bottomInset(value:String):void;
public function toClosedCaptionStyles():ClosedCaptionStyles;

}

(Does not exist in Browser TVSDK 2.4)

ABRControlParameters

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class ABRControlParameters{
public function ABRControlParameters(policy:String, initialBitRate:int, minBitRate:int, maxBitRate:int);





public function get initialBitRate():int
public function get minBitRate():int;
public function get maxBitRate():int;
public function get policy():String;
public function toString():String;
public function isEqual(other:ABRControlParameters):Boolean;







public static const CONSERVATIVE_POLICY:String = "conservativePolicy";
public static const MODERATE_POLICY:String = "moderatePolicy";
public static const AGGRESSIVE_POLICY:String = "aggressivePolicy";

}

Class ABRControlParameters {
ABRControlParameters (unsigned int nInitialBitRate, unsigned int nMinBitRate, 
unsigned int nMaxBitRate, unsigned short eABRPolicy, 
unsigned int nMinTrickPlayBitRate, unsigned int nMaxTrickPlayBitRate, 
unsigned int nMaxTrickPlayBandwidthUsage, double dMaxPlayoutRate);


attribute unsigned int initialBitRate;
attribute unsigned int minBitRate;
attribute unsigned int maxBitRate;
attribute unsigned short policy;



attribute unsigned short abrPolicy;
attribute unsigned int minTrickPlayBitRate; //2.3
attribute unsigned int maxTrickPlayBitRate;   //2.3
attribute unsigned int maxTrickPlayBandwidthUsage;   //2.3
attribute double maxPlayoutRate;   //2.3

const unsigned short CONSERVATIVE_POLICY = 0 ; 
const unsigned short MODERATE_POLICY = 1 ;
const unsigned short AGGRESSIVE_POLICY = 2 ;

};

Important: The ABRControlParametersBuilder class does not exist in Browser TVSDK 2.4.

BufferControlParameters

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class BufferControlParameters {
public function BufferControlParameters(initialBufferTime:uint, playbackBufferTime:uint);
public static function createSimple(bufferTime:uint):BufferControlParameters;
public static function createDual(initialBufferTime:uint, 
playbackBufferTime:uint):BufferControlParameters;
public function toString():String;
public function isEqual(other:BufferControlParameters):Boolean;

public function get initialBufferTime():uint;
public function get playbackBufferTime():uint;

}

Class BufferControlParameters {

BufferControlParameters(double nInitialBufferTime, double nPlayBufferTime);





attribute double initialBufferTime;
attribute double playBufferTime;

};

Important: The BufferControlParametersBuilder class does not exist in Browser TVSDK 2.4.

MediaPlayerItemLoader

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class MediaPlayerItemLoader extends EventDispatcher {
public function MediaPlayerItemLoader();
public final function load(resource:MediaResource, resourceId:int, config:MediaPlayerItemConfig = null):void;
public final function cancel():void;


public function get item():MediaPlayerItem;
public function set backgroundResource(resource:MediaResource): void;

}

Class MediaPlayerItemLoader {
MediaPlayerItemLoader ();
void load(MediaResource resource, int resourceId, ItemLoaderListener listener, MediaPlayerItemConfig config) ;
void cancel();
void prepareBuffer(double position);

readonly attribute MediaPlayerItem currentItem; 

readonly attribute DRMManager drmManager;
readonly attribute PSDKEventDispatcher eventDispatcher;
attribute AbrControlParameters abrControlParameters;
attribute BufferControlParameters bufferControlParameters;
attribute Boolean keepRebufferingForLive;


};

Important: The ABRControlParametersBuilder class does not exist in Browser TVSDK 2.4.

Media characteristics API element changes

These tables compare the customization API elements between TVDSK 1.4 for DHLS and Browser TVSDK 2.4.

Tables in this topic:

  • MediaPlayerItem
  • AudioTrack
  • ClosedCaptionsTrack
  • Track
  • Profile
  • DRMMetadataInfo
  • Notification/NotificationType

MediaPlayerItem

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public interface MediaPlayerItem {
function get resource():MediaResource;
function get resourceId():int;
function get isLive():Boolean;
function get hasAlternateAudio():Boolean;
function get audioTracks():Vector.<AudioTrack>;
function get selectedAudioTrack():AudioTrack;
function selectAudioTrack(audioTrack:AudioTrack):Boolean;
function get hasClosedCaptions():Boolean;
function get closedCaptionsTracks():Vector.<ClosedCaptionsTrack>;
function get selectedClosedCaptionsTrack():ClosedCaptionsTrack;
function selectClosedCaptionsTrack(closedCaptionsTrack:ClosedCaptionsTrack):Boolean;
function get hasTimedMetadata():Boolean;
function get timedMetadata():Vector.<TimedMetadata>;
function get isDynamic():Boolean;
function get profiles():Vector.<Profile>;
function get isProtected():Boolean;
function get drmMetadataInfos():Vector.<DRMMetadataInfo>;
function get isTrickPlaySupported():Boolean;
function get availablePlaybackRates():Vector.<Number>;
function get player():MediaPlayer;
function get config():MediaPlayerItemConfig;
function set config(value:MediaPlayerItemConfig):void;
function get inTrickPlay():Boolean;

}

Class MediaPlayerItem {
MediaPlayerItem(MediaPlayer mediaPlayer,
MediaResource mediaResource,MediaPlayerItem nativeMediaPlayerItem);
Boolean selectAudioTrack(AudioTrack audioTrack);
Boolean selectClosedCaptionsTrack(ClosedCaptionsTrack closedCaptionsTrack);
readonly attribute AdobePSDK.MediaResource resource;
readonly attribute String resourceId;
readonly attribute Boolean live;
readonly attribute Boolean hasAlternateAudio;
readonly attribute AudioTrack[] audioTracks;
readonly attribute AudioTrack selectedAudioTrack;
readonly attribute MediaPlayerItem hasClosedCaptions;
readonly attribute ClosedCaptionsTrack[] closedCaptionsTracks;
attribute ClosedCaptionsTrack selectedClosedCaptionsTrack;
readonly attribute Boolean hasTimedMetadata;
readonly attribute TimedMetadata[] timedMetadata;
readonly attribute Boolean dynamic;
readonly attribute Boolean isProtected;
readonly attribute DRMMetadata[] drmMetadataInfos;
readonly attribute Profile[] profiles;
readonly attribute Profile selectedProfile;
readonly attribute Boolean trickPlaySupported;
readonly attribute Number[] availablePlaybackRates;
readonly attribute Number selectedPlaybackRate;
readonly attribute MediaPlayer mediaPlayer;
readonly attribute MediaPlayerItemConfig config;
readonly attribute Boolean isDynamic;
readonly attribute Boolean isLive;
readonly attribute Boolean isTrickPlaySupported;


}

AudioTrack

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class AudioTrack extends Track {
public function isAutoSelect():Boolean;
public function get isForced():Boolean;
public function get pid():int;
public function toString():String;

}

Class AudioTrack extends Track {
Boolean equals(AudioTrack track);
readonly attribute Boolean forced;
readonly attribute Boolean isValid;
readonly attribute Number pID;

}

ClosedCaptionsTrack

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class ClosedCaptionsTrack extends Track {
public function get activity():Boolean;
public function get serviceType():String;

}

Class ClosedCaptionsTrack extends Track {
ClosedCaptionsTrack create(String url, String name, String language, String isDefault)
readonly attribute Boolean forced;
readonly attribute Boolean isValid;
readonly attribute String serviceType;

}

Track

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class Track {
public function Track(name:String, language:String, isDefault:Boolean);
public function get name():String;
public function get language():String;
public function get isDefault():Boolean;

}

Class Track {
Track(String name, String language, Boolean isDefault, Boolean autoSelect);
readonly attribute Boolean name;
readonly attribute Boolean language;
readonly attribute Boolean isDefault;
readonly attribute Boolean autoSelect;

}

Profile

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class Profile {
public function Profile(bitrate:uint, width:uint, height:uint);
public function get bitrate():uint;
public function get width():uint;
public function get height():uint;

};

Class Profile {
Profile (Number width, Number height, Number bitrate, String streamType, Boolean isIFrame);
Boolean isEqual(Ad other);
Boolean notEqual(Ad other);
readonly attribute Number width;
readonly attribute Number height;
readonly attribute Number bitrate;
readonly attribute Number bitrate;
readonly attribute Boolean isIFrame;
readonly attribute Boolean isIFrame;
readonly attribute Boolean isAudioOnly;
readonly attribute Boolean isValid;

};

DRMMetadataInfo

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class DRMMetadataInfo {
public function DRMMetadataInfo(drmMetadata:DRMContentData, timeRange:TimeRange, prefetchDeadline:Number);
public function get drmMetadata():DRMContentData;
public function get timeRange():TimeRange;

public function prefetchDeadline():Number;


}

Class DRMMetadataInfo {
DRMMetadataInfo();
readonly attribute Metadata drmMetadata;
readonly attribute Number prefetchTimestamp;
readonly attribute TImeRange timeRange;


};

Notification/ NotificationType

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
Notification  

public class Notification {
public function Notification(type:String, code:int, metadata:Metadata=null, innerNotification:Notification = null);
public function get type():String;
public function get code():int;
public function get description():String;
public function get metadata():Metadata;
public function get innerNotification():Notification;
public function toString():String;

}

Class Notification {
Notification(NotificationType type, PSDKErrorCode errorCode, Metadata metadata, Notification innerNotification);
readonly attribute NotificationType type;
readonly attribute PSDKErrorCode errorCode;
readonly attribute Metadata metadata;
readonly attribute Notification innerNotification;
String toString();

};

NotificationType  

public class NotificationType {
public static const INFO:String = "info";
public static const WARNING:String = "warning";
public static const ERROR:String = "error";

}

Class NotificationType {
Info = 0;
INFO = 0;
Warning = 1;
WARNING = 1;
Error = 2;
ERROR = 2;

}

Utility and Helper API element changes

These tables compare the customization API elements between TVDSK 1.4 for DHLS and Browser TVSDK 2.4.

Tables in this topic:

  • Metadata
  • TimeRange
  • Version
  • QOSProvider
  • DeviceInformation
  • LoadInformation/LoadInformationType
  • PlaybackInformation
  • PlaybackMetrics
  • DefaultMetadataKeys

Metadata

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class Metadata {
public final function containsKey(key:String):Boolean;
public function toString():String;

public final function getValue(key:String):String;
public final function setValue(key:String, value:String):void;

public final function getMetadata(key:String):Metadata;
public final function setMetadata(key:String, metadata:Metadata):void;

public final function getByteArray(key:String):ByteArray;
public final function setByteArray(key:String, byteArray:ByteArray):void;

public final function getObject(key:String):Object;
public final function setObject(key:String, object:Object):void;


public function isEmpty():Boolean;
public function keySet():Vector.<String>;


}

Class Metadata {
Metadata ();
Boolean containsKey(String key); 
Metadata clone();
String getValue(String key);
void setValue(String key, String value);

void setValue(String key, String value);
void setValue(String key, String value);

void setValue(String key, String value);
void setByteArray(String key, ByteArray byteArray);

Object getObject(String key);
void setObject(String key, Object object);


readonly attribute Boolean isEmpty;
readonly attribute Vector.<String> keySet;



};

Important: The MetadataNode and ByteArrayMetadata classes do not exist in Browser TVSDK 2.4.

TimeRange

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class TimeRange {
public function TimeRange (begin:Number, end:Number);
public static function createRange(begin:Number, duration:Number):TimeRange;
public function contains(position:Number):Boolean;
public function intersects(range:TimeRange):Boolean;
public function compareTo(range:TimeRange):int;
public function toString():String;

public function get begin():Number;
public function get end():Number;
public function get end():Number;


};

Class TimeRange {
TimeRange (long begin, long duration);
void expandTimeRange(TimeRange additionalTimeRange);
Boolean contains(long time); 
Boolean intersects(TimeRange range);
int compareTo(TimeRange timeRange);


int compareTo(TimeRange timeRange);
readonly attribute unsigned long end;
readonly attribute unsigned long duration;
readonly attribute unsigned Boolean isValid;

};

Version

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class Version {
public static function get version():String;
public static function get description():String;
public static function get major():String;
public static function get minor():String;
public static function get revision():String;

public static function get apiVersion():Number;

}

Class Version {
static readonly attribute String version;
static readonly attribute String description;
static readonly attribute long major;
static readonly attribute long minor;
static readonly attribute long revision;
static readonly attribute long revisionMinor;
static readonly attribute long apiVersion;

};

QOSProvider

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class QOSProvider {
public function QOSProvider();
public function attachMediaPlayer(player:MediaPlayer):void;
public function detachMediaPlayer():void;
public function get playbackInformation():PlaybackInformation;
public function get deviceInformation():DeviceInformation;

};

Class QOSProvider {
QOSProvider();
void attachMediaPlayer(MediaPlayer player);
void detachMediaPlayer();
readonly attribute DeviceInformation deviceInformation;
readonly attribute PlaybackInformation playbackInformation;

};

DeviceInformation

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class DeviceInformation {
public function DeviceInformation();
public function get os():String;
public function get heightPixels():Number;
public function get widthPixels():Number;
public function get densityDPI():Number;
public function get runtimeVersion():String;
public function get runtimeType():String;

}

Class DeviceInformation {
DeviceInformation();
readonly attribute String os;
readonly attribute int heightPixels;
readonly attribute int widthPixels;
readonly attribute int densityDPI;


readonly attribute boolean isSeekToKeyFrame;

};

LoadInformation/LoadInformationType

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API
LoadInformation

public final class LoadInformation {
public function LoadInformation(type:String, url:String, periodIndex:int, resourceSize:Number, mediaDuration:Number, downloadDuration:Number, trackName:String, trackType:String, trackIndex:int);
public static function createManifestLoadInformation(url:String):LoadInformation;
public static function createFragmentLoadInformation(url:String, periodIndex:int, resourceSize:Number, mediaDuration:Number, downloadDuration:Number):LoadInformation;
public static function createTrackLoadInformation(url:String, periodIndex:int, resourceSize:Number, mediaDuration:Number, downloadDuration:Number, trackName:String, trackType:String, trackIndex:int):LoadInformation;
public function toString():String;


public function get type():String;
public function get url():String;
public function get periodIndex():int;
public function get size():Number;
public function get downloadDuration():Number;
public function get mediaDuration():Number;
public function get trackName():String;
public function get trackType():String;
public function get trackIndex():int;


};

Class LoadInformation {
LoadInformation(LoadInformationType type, String url, int periodIndex, int size, double mediaDuration, double downloadDuration, String trackName, String trackIndex, int trackIndex); 






readonly attribute LoadInformationType type;

readonly attribute String url
readonly attribute int periodIndex;
readonly attribute int size;
readonly attribute double downloadDuration;
readonly attribute double mediaDuration;
readonly attribute String trackName;
readonly attribute String trackType;
readonly attribute int trackIndex;


};

LoadInformationType Enum

public final class LoadInformationType {
public static const FRAGMENT:String = "fragment";
public static const TRACK:String = "track";
public static const MANIFEST:String = "manifest";

};

Enum LoadInformationType {
const unsigned short FRAGMENT = 0;
const unsigned short TRACK = 1;
const unsigned short MANIFEST = 2;

};

PlaybackInformation

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class PlaybackInformation {
public function PlaybackInformation(timeToFirstByte:Number, timeToLoad:Number, timeToPrepare:Number, timeToStart:Number, timeToFail:Number, secondsPlayed:Number, secondsSpent:Number, frameRate:Number, droppedFrameCount:Number, perceivedBandwidth:uint, bitrate:Number, bufferTime:Number, bufferLength:Number, emptyBufferCount:Number, bufferingTime:Number);


public function get timeToFirstByte():Number;
public function get timeToLoad():Number;
public function get timeToPrepare():Number;
public function get timeToStart():Number;
public function get timeToFail():Number;
public function get secondsPlayed():Number;
public function get secondsSpent():Number;
public function get frameRate():Number;
public function get droppedFrameCount():Number;
public function get perceivedBandwidth():uint;
public function get bitRate():Number;
public function get bufferTime():Number;
public function get bufferLength():Number;
public function get emptyBufferCount():Number;
public function get bufferingTime():Number;








}

Class DeviceInformation {
PlaybackInformation(double timeToFirstByte, double timeToLoad, double timeToPrepare, double timeToStart, double timeToFail, int secondsPlayed, int secondsSpent, double frameRate, int droppedFrameCount, int perceivedBandwidth, int bitRate, double bufferTime, int bufferLength, int emptyBufferCount, double bufferingTime);


readonly attribute double timeToFirstByte;
readonly attribute double timeToLoad;
readonly attribute double timeToPrepare;
readonly attribute double timeToStart;
readonly attribute double timeToFail;
readonly attribute int totalSecondsPlayed;
readonly attribute int totalSecondsSpent;
readonly attribute double frameRate;
readonly attribute int droppedFrameCount;
readonly attribute int perceivedBandwidth;
readonly attribute int bitRate;
readonly attribute double bufferTime;
readonly attribute int bufferLength;
readonly attribute int emptyBufferCount;
readonly attribute double bufferingTime;
readonly attribute double timeToInitialize;
readonly attribute double timeToPlay;
readonly attribute double totalBufferingTime;
readonly attribute Object seekTimes;
readonly attribute PlaybackMetrics playbackMetrics;



};

PlaybackMetrics

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public class PlaybackMetrics {
public function PlaybackMetrics();
public final function update():void;
protected function doUpdate():void;
public final function cleanUp():void;
protected function doCleanUp():void;
public final function reset():void;
public function get time():Number;
public function get playbackRange():TimeRange;
public function get seekableRange():TimeRange;
public function get bufferedRange():TimeRange;
public function get frameRate():Number;
public function get droppedFramesCount():Number;
public function get perceivedBandwidth():uint;
public function get bitrate():Number;
public function get bufferTime():Number;
public function get bufferLength():Number;
public function get readHead():Number;


}

Class PlaybackMetrics {
PlaybackMetrics(MediaPlayer mediaPlayer);
readonly attribute Number readHead;
readonly attribute Number bufferLength;
readonly attribute Number bufferTime;
readonly attribute Number bitRate;
readonly attribute Number perceivedBandwidth;
readonly attribute Number droppedFramesCount;
readonly attribute Number playbackRate;
readonly attribute Number frameRate;
readonly attribute Number time;
readonly attribute TImeRange playbackRange;
readonly attribute TImeRange bufferedRange;
readonly attribute TimeRange seekableRange;
readonly attribute TimeRange frontBufferedRange;
readonly attribute TimeRange backBufferedRange;
update();
reset();


};

DefaultMetadataKeys

TVSDK 1.4 for DHLS API Browser TVSDK 2.4 API

public final class DefaultMetadataKeys {

public static const AD_SIGNALING_MODE:String = "adSignalingMode"
public static const AD_BREAK_AS_WATCHED_POLICY:String = "adBreakAsWatchedPolicy";

public static const BLACKOUT_METADATA_KEY:String = "blackoutMetadata";
public static const ENABLE_LIVE_PREROLL:String = "enableLivePreroll";

public static const ADVERTISING_METADATA:String = "advertisingMetadata";
public static const AUDITUDE_METADATA_KEY:String = "auditude_metadata";
public static const JSON_METADATA_KEY:String = "json_metadata";
public static const VIDEO_ANALYTICS_METADATA_KEY:String = "video_analytics_metadata";
public static const CUSTOM_AD_MARKERS_METADATA_KEY:String = "custom_ad_markers_metadata";
public static const CUSTOM_DELETE_RANGES_METADATA_KEY:String = "delete_range_metadata";
public static const CUSTOM_REPLACE_RANGES_METADATA_KEY:String = "replace_range_metadata";
public static const METADATA_KEY_TYPE:String = "type";
public static const METADATA_KEY_ADJUST_SEEK_ENABLED:String = "adjust_seek_enabled";
public static const CUSTOM_PARAMETERS:String = "customParams";
public static const TARGETING_PARAMETERS:String = "targetingParameters";
public static const NETWORK_CONFIGURATION_KEY:String = "network_configuration";
public static const SIGNALING_MODE:String = "signalingMode";

public static const RESOURCE_URL:String = "resourceUrl"
public static const RESOURCE_TYPE:String = "resourceType";
public static const RESOURCE_ID:String = "resourceId";
public static const RUNTIME_CODE:String = "runtimeCode";
public static const RUNTIME_CODE_MESSAGE:String = "runtimeCodeMessage";
public static const PARAMETERS:String = "parameters";
public static const EVENT_TYPE:String = "eventType";
public static const DESCRIPTION:String = "description";
public static const ERROR_ID:String = "errorId";
public static const ERROR_MESSAGE:String = "errorMessage";
public static const ERROR_NAME:String = "errorName";

public static const TAG_ID:String = "ID";
public static const SCTE35_OBJECT:String = "SCTE35_OBJECT";

public static const SEEK_POSITION:String = "seekPosition";
public static const SEEK_CONTENT_ID:String = "seekContentId";
public static const SEEK_POLICY:String = "seekPolicy";

public static const RUNTIME_SUBERROR_CODE:String = "runtime_suberror_code";
public static const DRM_ERROR_STRING:String = "drm_error_string";






};

Class DefaultMetadataKeys {

AD_SIGNALING_MODE : "adSignalingMode",
AD_BREAK_AS_WATCHED_POLICY : "adBreakAsWatchedPolicy",




ADVERTISING_METADATA : "advertisingMetadata",
AUDITUDE_METADATA_KEY : "auditude_metadata",
JSON_METADATA_KEY : "json_metadata",
VIDEO_ANALYTICS_METADATA_KEY : "video_analytics_metadata",
CUSTOM_AD_MARKERS_METADATA_KEY : "custom_ad_markers_metadata", 


METADATA_KEY_TYPE : "type",
METADATA_KEY_ADJUST_SEEK_ENABLED : "adjust_seek_enabled",
CUSTOM_PARAMETERS : "customParams",
TARGETING_PARAMETERS : "targetingParameters",
NETWORK_CONFIGURATION_KEY : "network_configuration"


};

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License  Twitter™ and Facebook posts are not covered under the terms of Creative Commons.

Legal Notices   |   Online Privacy Policy