1java media framework universitÀ degli studi di napoli federico ii facolta di scienze mm.ff.nn...
TRANSCRIPT
1Java Media Framework
UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO IIUNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO IIFACOLTA’ DI SCIENZE MM.FF.NNFACOLTA’ DI SCIENZE MM.FF.NN
CORSO DI LAUREA MAGISTRALE DI INFORMATICACORSO DI LAUREA MAGISTRALE DI INFORMATICA
JAVA MEDIA FRAMEWORKJAVA MEDIA FRAMEWORK
Introduzione e primi esempi Introduzione e primi esempi
Davide Cutarelli Matr. 961/92 Davide Cutarelli Matr. 961/92
ANNO ACCADEMICO 2008/2009ANNO ACCADEMICO 2008/2009
Java Media Framework 2
Introduzione al JMFIntroduzione al JMF Java Media Framework (JMF) è un API che permette di utilizzare contenuti multimediali all’interno di applicazioni e applet Java.
supporta gli standard noti come au, avi, supporta gli standard noti come au, avi, midi, mpeg, quicktime, wawmidi, mpeg, quicktime, waw
Java Media Framework 3
Principali package JMFPrincipali package JMF
I principali package che compongono le API JMF sono : javax.media : contiene le principali classi di JMF javax.media.control : permette di leggere e modificare parametri quali : bit rate, frame rate, lunghezza del buffer di ricezione, ecc.. javax.media.format : per la descrizione dei formati supportati
4Java Media Framework
Basic ModelBasic Model
5Java Media Framework
JMF ArchitectureJMF Architecture
Capture Capture devicedevice
Files on Files on diskdisk
Network Network inputinput
CodecsCodecs
EffectsEffects
Video RendererVideo Renderer
Save to diskSave to disk
Output to Output to networknetwork
6Java Media Framework
JMF Classi e interfacce : JMF Classi e interfacce : ControllerController
In JMF il processo di presentazione è modellato In JMF il processo di presentazione è modellato dall’interfaccia dall’interfaccia
ControllerController. JMF definisce due tipi di Controllers : . JMF definisce due tipi di Controllers : Player e ProcessorPlayer e Processor.
7Java Media Framework
JMF Classi e interfacce : JMF Classi e interfacce : Player (1)Player (1)
Un Un PlayerPlayer processa un flusso di dati in input e lo processa un flusso di dati in input e lo renderizza ad un renderizza ad un
tempo preciso. Un tempo preciso. Un DatasourceDatasource è usato per è usato per trasportare lo streamtrasportare lo stream
di input al Player.di input al Player.
Java Media Framework 8
JMF Classi e interfacce : JMF Classi e interfacce : Player (2)Player (2)
Java Media Framework 9
JMF Classi e interfacce : JMF Classi e interfacce : Player (3)Player (3)
Stato Unrealized : alla creazione, il player è in Stato Unrealized : alla creazione, il player è in questo stato il player, e non sa nulla sui mediaquesto stato il player, e non sa nulla sui media
Stato Realizing : in questo stato il player Stato Realizing : in questo stato il player acquisisce le risorseacquisisce le risorse
Stato Realized : dopo aver acquisito le risorse il Stato Realized : dopo aver acquisito le risorse il player è pronto a renderizzare i dati e può player è pronto a renderizzare i dati e può disporre di componenti visuali e controllidisporre di componenti visuali e controlli
Java Media Framework 10
JMF Classi e interfacce : JMF Classi e interfacce : Player (4)Player (4)
Stato Prefetching : il player carica i dati Stato Prefetching : il player carica i dati multimediali e si prepara a visualizzarlimultimediali e si prepara a visualizzarli
Stato Prefetched : il player è pronto ad essere Stato Prefetched : il player è pronto ad essere mandato in esecuzionemandato in esecuzione
Stato Started : il player inizia la visualizzazione Stato Started : il player inizia la visualizzazione del dato multimedialedel dato multimediale
Java Media Framework 11
JMF Classi e interfacce : JMF Classi e interfacce : Processor (1)Processor (1)
Il Il ProcessorProcessor può essere usato per la può essere usato per la presentazione dei dati. Un presentazione dei dati. Un
processore è una specializzazione di un Player processore è una specializzazione di un Player che fornisce che fornisce
controlli su come processare il flusso di dati di controlli su come processare il flusso di dati di input. input.
Java Media Framework 12
JMF Classi e interfacce : JMF Classi e interfacce : Processor (2)Processor (2)
Il Il ProcessorProcessor estende l’interfaccia Player : A estende l’interfaccia Player : A differenza di un differenza di un
Player può spedire i dati di output a un Player può spedire i dati di output a un dispositivo di dispositivo di
presentazione oppure ad un DataSource. presentazione oppure ad un DataSource.
Java Media Framework 13
JMF Classi e interfacce : JMF Classi e interfacce : Processor (3)Processor (3)
Rispetto al Player, il Rispetto al Player, il ProcessorProcessor ha due stati in più ha due stati in più : Configuring e : Configuring e
Configured. Configured.
14Java Media Framework
JMF Classi e interfacce : JMF Classi e interfacce : ManagerManager
La classe Manager contiene metodi per la creazione di oggetti Player
e Processor, in grado di riprodurre oggetti multimediali
15Java Media Framework
JMF Classi e interfacce : JMF Classi e interfacce : ControlControl
L’interfaccia Control fornisce un
meccanismo per settare e interrogare
attributi di un oggetto
16Java Media Framework
JMF Esempio : Creazione JMF Esempio : Creazione DataSourceDataSource
Per gestire il trasferimento dei dati multimediali Per gestire il trasferimento dei dati multimediali da input a output da input a output
si utilizza un DataSource, che incapsula sia la si utilizza un DataSource, che incapsula sia la location per del location per del
video, sia il protocollo per accedere ad esso. La video, sia il protocollo per accedere ad esso. La location è location è
ottenuta mediante :ottenuta mediante :
MediaLocatorMediaLocator
URLURL
17Java Media Framework
JMF Esempio : Creazione JMF Esempio : Creazione PlayerPlayer
Per creare il Player si utilizza il metodo Per creare il Player si utilizza il metodo createPlayercreatePlayer della classe della classe
Manager. Manager.
Il player transita nello stato realizing acquisendo le risorse per poi Il player transita nello stato realizing acquisendo le risorse per poi passare nello stato Realized, nel passare nello stato Realized, nel
quale sa come renderizzare i dati e può disporre di componenti visuali e quale sa come renderizzare i dati e può disporre di componenti visuali e
controllicontrolli
18Java Media Framework
JMF Esempio : Durata e JMF Esempio : Durata e numero di frame del video numero di frame del video
(1)(1) javax.media.control.FramePositioningControl: javax.media.control.FramePositioningControl:
interfaccia per a controllare il posizionamento di interfaccia per a controllare il posizionamento di un frame all'interno di un video, per i Player e i un frame all'interno di un video, per i Player e i Processor. C'è una corrispondenza diretta tra il Processor. C'è una corrispondenza diretta tra il numero identificativo di un frame e l'istante di numero identificativo di un frame e l'istante di tempo in cui esso viene visualizzato (media tempo in cui esso viene visualizzato (media time).time).
javax.media.control.FrameGrabbingControl: javax.media.control.FrameGrabbingControl: interfaccia per estarre un frame di un video da interfaccia per estarre un frame di un video da
un Playerun Player
19Java Media Framework
JMF Esempio : Durata e JMF Esempio : Durata e numero di frame del video numero di frame del video
(2)(2)
20Java Media Framework
JMF Esempio : JMF Esempio : Posizionamento su un Posizionamento su un
determinato framedeterminato frame
Posizionamento al frame 30 del videoPosizionamento al frame 30 del videoOttengo l’id del frame correnteOttengo l’id del frame correnteTempo relativo al posizionamento sul Tempo relativo al posizionamento sul frame desideratoframe desiderato
21Java Media Framework
JMF Esempio : PlayerApplet JMF Esempio : PlayerApplet (1)(1)
22Java Media Framework
JMF Esempio : PlayerApplet JMF Esempio : PlayerApplet (2)(2)
23Java Media Framework
JMF Esempio : PlayerApplet JMF Esempio : PlayerApplet (3)(3)
24Java Media Framework
JMF RiferimentiJMF Riferimenti
Java Media Framework API Guide, November Java Media Framework API Guide, November 19, 1999, JMF 2.0 FCS19, 1999, JMF 2.0 FCS
Java Media Framework Basics, Java Media Framework Basics, ibm.com/developerWorksibm.com/developerWorks
http://java.sun.com/javase/technologies/desktop/media/jmf/
http://www.mokabyte.it