Il pacchetto org.osmf.traits fornisce i blocchi costitutivi per la creazione di trait multimediali specifici. I trait definiscono le funzionalità di un elemento multimediale.
Implementazioni diverse di un elemento multimediale aggregano serie di trait differenti, a seconda delle caratteristiche dell'elemento multimediale che rappresentano. Ad esempio, un elemento audio potrebbe aggregare i trait IAudible, IPlayable, ITemporal e ILoadable. Questi singoli trait definiscono le funzionalità dell'elemento multimediale indipendentemente dalla sua implementazione specifica. Per un elemento multimediale associato al trait ILoadable, il trait fornisce le funzionalità di caricamento e scaricamento dell'elemento. Analogamente, l'implementazione del trait IPlayable fornisce la capacità dell'elemento multimediale di avviare la propria riproduzione.
Un trait viene aggiunto a un elemento multimediale tramite il metodo MediaElement.addTrait()
dell'elemento.
L'implementazione dei trait multimediale è basata sui seguenti principi:
- I trait sono indipendenti l'uno dall'altro. Di conseguenza, un trait multimediale non può estendere un altro trait multimediale.
- I trait inviano i propri eventi. Le implementazioni trait possono derivare dalla classe MediaTraitBase, che estende EventDispatcher e implementa IMediaTrait, per gestire l'invio degli eventi.
- I trait sono identificati dalla classe di enumerazione MediaTraitType.
- I trait devono essere implementati come classi separate.
Le interfacce dei trait sono studiate per essere utilizzate dalle classi degli elementi multimediali. Si tratta di entità generiche rivolte verso l'esterno, caratterizzate principalmente da getter privi di setter, tranne che per i traits che richiedono proprietà impostabili esternamente, quali le proprietà volume o pan di un IAudible.
Le classi trait di base sono studiate per essere utilizzate dalle implementazioni che utilizzano la sottoclasse MediaElement. Generalmente sono dotate di setter e getter.
Classe | Descrizione | |
---|---|---|
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. |
Tue Jun 12 2018, 03:00 PM Z