Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
1.4 – I Me<strong>di</strong>a Framework<br />
<strong>Sviluppo</strong> <strong>di</strong> <strong>una</strong> <strong>piattaforma</strong> <strong>per</strong> <strong>lo</strong> <strong>streaming</strong> multime<strong>di</strong>ale in ambiente Android<br />
L'implementazione “verticale” dei meto<strong>di</strong> <strong>di</strong> comunicazione RTP in Java è<br />
<strong>di</strong>ffusa oggi attraverso <strong>lo</strong> storico JMF (Java Me<strong>di</strong>a Framework) <strong>di</strong> Sun MicroSystem<br />
e il neonato FMJ della SourceForge.<br />
Questi due sistemi offrono API <strong>per</strong> la creazione <strong>di</strong> trasmettitori e ricevitori e <strong>per</strong> la<br />
gestione degli stream <strong>di</strong> dati; forniscono implementazioni <strong>per</strong> le comunicazioni<br />
me<strong>di</strong>ante protocolli standard come RTP, HTTP e SIP, in modalità Unicast, Multicast<br />
o Broadcast, contengono Coder e Decoder <strong>per</strong> comprimere i file multime<strong>di</strong>ali nei più<br />
noti formati video e au<strong>di</strong>o e si fanno carico della gestione della sicurezza <strong>di</strong> <strong>una</strong><br />
connessione.<br />
1.4.1 – Java Me<strong>di</strong>a Framework<br />
JMF usa il model<strong>lo</strong> base ispirato ai <strong>di</strong>spositivi <strong>di</strong> registrazione, come un VCR,<br />
ovvero la risorsa me<strong>di</strong>a è contenuta in un DataSource e interpretata da un<br />
Me<strong>di</strong>aPlayer, così come <strong>una</strong> VHS contiene il filmato au<strong>di</strong>ovisivo che viene<br />
interpretato e trasmesso dal VCR verso i <strong>di</strong>spositivi <strong>di</strong> riproduzione.<br />
Esistono quattro implementazioni del JMF, <strong>una</strong> che usa co<strong>di</strong>ce scritto puramente in<br />
java (Cross Platform E<strong>di</strong>tion, non sempre la più efficiente in quanto la deco<strong>di</strong>fica <strong>di</strong><br />
molti stream video è un’o<strong>per</strong>azione pesante in termini <strong>di</strong> cicli <strong>di</strong> CPU) ed altre<br />
(Solaris, Linux e Windows <strong>per</strong>formance pack) che utilizzano plug-in scritti in C e<br />
implementati specificatamente <strong>per</strong> ogni <strong>piattaforma</strong>.<br />
Le API <strong>di</strong> JMF consistono <strong>di</strong> interfacce, e le varie implementazioni <strong>di</strong> queste<br />
interagiscono tra <strong>lo</strong>ro me<strong>di</strong>ante l'utilizzo <strong>di</strong> quattro Managers: Manager,<br />
PacketManager, CaptureDeviceManager,PlugInManager.<br />
25