ATTENTION ! Cette documentation se réfère à la dernière version du Metadataplayer, disponible dans la branche default du repository http://www.iri.centrepompidou.fr/dev/hg/metadataplayer
IriSP.Model.Element
Classe de base dont héritent les différents types d’objets utilisés dans le Metadataplayer: annotations, types d’annotations, médias, etc.
Element fonctionne comme une classe abstraite est n’est jamais instancié directement.
Néanmoins, tous les objets en héritant seront instanciés de la manière suivante :
var myElement = new IriSP.Model.Element(id, source);
Type d’élément, surchargé par les classes qui héritent de l’élément de base:
Identifiant unique de l’élément
Titre de l’élément, par défaut une chaîne vide ("")
Description de l’élément, par défaut une chaîne vide ("")
IriSP.Model.Media
Représente un média (vidéo ou audio).
Hérite de l’Élément de base
Il s’agit de l’URL de la vidéo à charger
Il s’agit de la durée du média (telle que renseignée dans les métadonnées -- peut ne pas être égale à la durée telle que lue dans la fenêtre vidéo).
Il s’agit d’un objet durée (cf. IriSP.Model.Time plus bas)
Permet de spécifier la durée du média, en millisecondes
Retourne la liste des annotations associées au média
Retourne la liste des annotations associées au média et dont le type d’annotation (ou découpage, ou ligne, c.f. Type d’Annotation plus bas) correspond à l’argument de la fonction
IriSP.Model.AnnotationType
Représente un type d’annotation, correspondant également à ce qui peut être nommé découpage ou ligne dans Lignes de Temps
Hérite de l’Élément de base.
Retourne la liste des annotations associées au type d’annotation
IriSP.Model.Annotation
Représente une annotation, correspondant à un segment temporel (dont la durée peut être nulle) d’un média
Hérite de l’Élément de base.
Timecode de fin de l’annotation. Est un objet de type durée (cf. plus bas)
Timecode de début de l’annotation. Est un objet de type durée (cf. plus bas)
Retourne l’objet Média (IriSP.Model.Media) auquel se réfère l’annotation
Retourne l’objet Type d’Annotation (IriSP.Model.AnnotationType) auquel se réfère l’annotation
Retourne la liste (cf. Liste d’éléments IriSP.Model.List) des tags associés à l’annotation.
IriSP.Model.Mashup
Il s’agit d’un bout à bout, composé d’une liste de segments (définis par des annotations de durée non nulle) accolés les uns après les autres.
À compléter
IriSP.Model.List
Etend les fonctionnalités des tableaux javascript (Array) pour lister des éléments (cf. types d’éléments ci-dessus).
var myList = new IriSP.Model.List(directory);
Ces méthodes sont fournies grâce à la bibliothèque extérieure underscore.js et sont documentées sur http://documentcloud.github.com/underscore/
Il s’agit de:
Méthodes retournant une nouvelle liste d’éléments, contenant les éléments de la liste dont respectivement le titre, la description ou les deux correspondent à l’argument de la méthode.
myList.searchByTitle("texte"); // => un *IriSP.Model.List* contenant les éléments de myList dont le titre contient "texte"
IriSP.Model.Time
Facilite la gestion des durées en millisecondes utilisées dans le Metadataplayer
var myTime = new IriSP.Model.Time(ms);
Renvoie la durée convertie en secondes
Renvoie la durée au format (hh:)mm:ss
Permet d’affecter une durée en secondes
myTime.setSeconds(12); // 12000 millisecondes
IriSP.Model.Source
et IriSP.Model.RemoteSource
Gère une source de données : fichier externe JSON, XML, etc. pour IriSP.Model.RemoteSource, projet créé à la volée pour IriSP.Model.Source.
IriSP.Model.RemoteSource hérite de IriSP.Model.Source et ne diffère que par son implémentation de la méthode get.
Sur la plateforme Lignes de Temps, il existe plusieurs API qui sont utilisées comme sources :
var config = { directory: myDirectory };
var mySource = new IriSP.Model.Source(config);
Une Source ne doit pas être instanciée directement, ce rôle est donné aux répertoires de données, ce qui permet notamment d’éviter des accès multiples à une même URL.
TODO: transférer dans un objet "Project"
Donne accès au média en cours du projet. Peut désigner un vrai média ou un mashup.
Permet de récupérer ou de rafraîchir, via Ajax, les données de la source. Pour un IriSP.Model.Source de base, n’a aucun effet.
Permet d’exécuter une fonction, passée en argument, au chargement de la source.
Transforme les données de la source en données sérialisées, au format du sérialiseur associées à la source, et inversement.
Retourne les listes respectives d’annotations, types d’annotations, médias, tags et mashups de la source.
Retourne la liste des annotations dont le type d’annotation correspond à l’argument de la fonction.
IriSP.Model.Directory
Gère l’instanciation des sources de données et la mise en cache de ces sources lorsque plusieurs appels à la même URLs sont faits.
Permet également aux objets de plusieurs sources d’interagir entre eux.
var myDirectory = new IriSP.Model.Directory
Crée une nouvelle source non attachée à une URL. S’il faut exporter des données, un sérialiseur doit être passé en paramètres.
var myConfig = { serializer: IriSP.serializers.ldt };
var myLocalSource = myDirectory.newLocalSource(myConfig);
Crée ou récupère (si celle-ci existe déjà) une source attachée à une URL. Le sérialiseur est obligatoire.
var myConfig = { url: "source-data.json", serializer: IriSP.serializers.ldt };
var myLocalSource = myDirectory.remoteSource(myConfig);