Het pakket org.osmf.traits biedt de bouwstenen voor het maken van specifieke mediatraits. Traits definiëren de mogelijkheden van een media-element.
Verschillende implementaties van een media-element vormen samen verschillende reeksen traits, afhankelijk van de eigenschappen van de media die ze vertegenwoordigen. Een audio-element kan bijvoorbeeld bestaan uit de traits IAudible, IPlayable, ITemporal en ILoadable. Deze afzonderlijke traits definiëren de mogelijkheden van het media-element, onafhankelijk van de specifieke implementatie van media-elementen. Voor een media-element met de trait ILoadable verzorgt de trait de mogelijkheid tot het laden en verwijderen van het media-element. Op vergelijkbare wijze biedt de implementatie van de trait IPlayable het media-element de mogelijkheid om zichzelf af te spelen.
Er wordt een trait aan een media-element toegevoegd via de methode MediaElement.addTrait()
van het element.
De implementatie van mediatraits is gebaseerd op de volgende principes:
- Traits zijn niet afhankelijk van elkaar. Met een mediatrait wordt daarom een ander mediatrait ook niet uitgebreid.
- Traits verzenden hun eigen gebeurtenissen. Implementaties van traits kunnen afkomstig zijn van de klasse MediaTraitBase, waarmee EventDispatcher wordt uitgebreid en ImediaTrait wordt geïmplementeerd om het verzenden van gebeurtenissen af te handelen.
- Traits worden geïdentificeerd door de opsommingsklasse MediaTraitType.
- Traits moeten als afzonderlijke klassen worden geïmplementeerd.
De interfaces van de traits zijn bedoeld voor gebruik door media-elementklassen. Het zijn algemene naar buiten gerichte items die hoofdzakelijk worden gekenmerkt door getters zonder setters, behalve voor traits waarvoor extern instelbare eigenschappen zijn vereist, zoals het volume of de paneigenschappen van een IAudible.
De basistraitklassen zijn bedoeld voor gebruik door implementaties van subklassen onder MediaElement. Ze hebben doorgaans zowel setters als getters.
Klasse | Beschrijving | |
---|---|---|
AlternativeAudioTrait | AlternativeAudioTrait defines the trait interface for media supporting alternative audio streams. | |
AudioTrait | AudioTrait defines the trait interface for media that have audio. | |
BufferTrait | BufferTrait defines the trait interface for media that can use a data buffer. | |
DisplayObjectTrait | DisplayObjectTrait defines the trait interface for media that expose a DisplayObject, and which may have intrinsic dimensions. | |
DRMState | DRMState is the enumeration of possible DRM-specific states that a piece of media can be in. | |
DRMTrait | DRMTrait defines the trait interface for media which can be protected by digital rights management (DRM) technology. | |
DVRTrait | DVRTrait defines the trait interface for media that can be played while in the process of being recorded, as if with a digital video recorder (DVR). | |
DynamicStreamTrait | DynamicStreamTrait defines the trait interface for media supporting dynamic stream switching. | |
LoaderBase | LoaderBase is the base class for objects that are capable of loading and unloading LoadTraits. | |
LoadState | LoadState is the enumeration of possible states that a LoadTrait can be in. | |
LoadTrait | LoadTrait defines the trait interface for media that must be loaded before it can be presented. | |
MediaTraitBase | A MediaTraitBase is the encapsulation of a trait or capability that's inherent to a MediaElement. | |
MediaTraitType | MediaTraitType is the enumeration of all possible media trait types. | |
PlayState | PlayState is the enumeration of possible states that a PlayTrait can be in. | |
PlayTrait | PlayTrait defines the trait interface for media whose playback can be started and stopped. | |
SeekTrait | SeekTrait defines the trait interface for media that can be instructed to jump to a position in time. | |
TimeTrait | TimeTrait defines the trait interface for media that have a duration and a currentTime. | |
TraitEventDispatcher | TraitEventDispatcher is a utility class that exposes a uniform interface for receiving trait events from a MediaElement. |
Wed Jun 13 2018, 11:57 AM Z