L'API JMF : API de base
L'API de base contient les outils nécessaires à la manipulation de données multimédia. Elle 
fournit les méthodes pour gérer des données média(DataSource), les lire (Player) ou encore 
effectuer des traitements (Processor). 
Gestion des données
Les lecteurs JMF utilisent en général des DataSource pour gérer le transfert du contenu d'un 
media. Il encapsule un ensemble de données sur le transfert à effectuer : 
•L'emplacement du fichier que l'on veut transporter
•Le protocole que l'on va utiliser pour délivrer le flux
•Les outils utilisés pour le transfert
Une DataSource est identifiée par un objet MediaLocator ou URL permettant de spécifier 
l'emplacement du media à gérer. Un MediaLocator est similaire à l'objet URL et peut être 
construit à partir de celui-ci. La seule différence est qu'il ne nécessite pas que le handler 
(gestionnaire) du protocole utilisé soit installé sur la machine pour être utilisé.
ex : ftp://... On pourrait l'utiliser même si le handler ftp n'était pas installé 
Il existe alors deux types de DataSources en fonction de l'émetteur et du récepteur : 
•Pull DataSource (en entrée) : Le client initialise le transfert de données et contrôle le 
flot de données avec le PullDataSource
•Push DataSource  (en sortie): Le serveur initialise le transfert de données et contrôle le 
flow de données avec le Push DataSource
Les formats de fichiers multimédias sont gérés par des classes de type Format contenant les 
attributs spécifiques du format utilisé. 
Les objets Manager
Pour simplifier l'utilisation des différentes fonctions de l'API, JMF fournit des classes 
Managers permettant d'accéder à tous les services principaux. Cela permet de centraliser les 
différentes fonctions : 
•Manager : Cette classe permet la construction des objets principaux, autrement dit les 
Players, Processors, DataSources et DataSinks (permettre l'enregistrement d'un flux 
ou la capture)
•PackageManager : Maintient un registre de packages contenant des classes JMF 
customisés(Players particuliers ...) 
•CaptureDeviceManager : Maintient une liste des périphériques de capture valable 
dans JMF
•PlugInManager : maintient une liste des plugins JMF de traitement utilisables 
(Multiplexers, Demultiplexers, Codecs, Effects, Renderers)