UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II FACOLTA’ DI SCIENZE MM.FF.NN CORSO DI LAUREA MAGISTRALE DI INFORMATICA JAVA MEDIA FRAMEWORK Introduzione e primi esempi Davide Cutarelli Matr. 961/92 ANNO ACCADEMICO 2008/2009 Java Media Framework
Introduzione 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, midi, mpeg, quicktime, waw Java Media Framework
Principali 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 Java Media Framework
Basic Model Java Media Framework
JMF Architecture Capture device Files on disk Network input Codecs Effects Video Renderer Save to disk Output to network Java Media Framework
JMF Classi e interfacce : Controller In JMF il processo di presentazione è modellato dall’interfaccia Controller. JMF definisce due tipi di Controllers : Player e Processor. Java Media Framework
JMF Classi e interfacce : Player (1) Un Player processa un flusso di dati in input e lo renderizza ad un tempo preciso. Un Datasource è usato per trasportare lo stream di input al Player. Java Media Framework
JMF Classi e interfacce : Player (2) Java Media Framework
JMF Classi e interfacce : Player (3) Stato Unrealized : alla creazione, il player è in questo stato il player, e non sa nulla sui media Stato Realizing : in questo stato il player acquisisce le risorse Stato Realized : dopo aver acquisito le risorse il player è pronto a renderizzare i dati e può disporre di componenti visuali e controlli Java Media Framework
JMF Classi e interfacce : Player (4) Stato Prefetching : il player carica i dati multimediali e si prepara a visualizzarli Stato Prefetched : il player è pronto ad essere mandato in esecuzione Stato Started : il player inizia la visualizzazione del dato multimediale Java Media Framework
JMF Classi e interfacce : Processor (1) Il Processor può essere usato per la presentazione dei dati. Un processore è una specializzazione di un Player che fornisce controlli su come processare il flusso di dati di input. Java Media Framework
JMF Classi e interfacce : Processor (2) Il Processor estende l’interfaccia Player : A differenza di un Player può spedire i dati di output a un dispositivo di presentazione oppure ad un DataSource. Java Media Framework
JMF Classi e interfacce : Processor (3) Rispetto al Player, il Processor ha due stati in più : Configuring e Configured. Java Media Framework
JMF Classi e interfacce : Manager La classe Manager contiene metodi per la creazione di oggetti Player e Processor, in grado di riprodurre oggetti multimediali Java Media Framework
JMF Classi e interfacce : Control L’interfaccia Control fornisce un meccanismo per settare e interrogare attributi di un oggetto Java Media Framework
JMF Esempio : Creazione DataSource Per gestire il trasferimento dei dati multimediali da input a output si utilizza un DataSource, che incapsula sia la location per del video, sia il protocollo per accedere ad esso. La location è ottenuta mediante : MediaLocator URL Java Media Framework
JMF Esempio : Creazione Player Per creare il Player si utilizza il metodo createPlayer della classe Manager. Il player transita nello stato realizing acquisendo le risorse per poi passare nello stato Realized, nel quale sa come renderizzare i dati e può disporre di componenti visuali e controlli Java Media Framework
JMF Esempio : Durata e numero di frame del video (1) javax.media.control.FramePositioningControl: interfaccia per a controllare il posizionamento di un frame all'interno di un video, per i Player e i Processor. C'è una corrispondenza diretta tra il numero identificativo di un frame e l'istante di tempo in cui esso viene visualizzato (media time). javax.media.control.FrameGrabbingControl: interfaccia per estarre un frame di un video da un Player Java Media Framework
JMF Esempio : Durata e numero di frame del video (2) Java Media Framework
JMF Esempio : Posizionamento su un determinato frame Tempo relativo al posizionamento sul frame desiderato Ottengo l’id del frame corrente Posizionamento al frame 30 del video Java Media Framework
JMF Esempio : PlayerApplet (1) Java Media Framework
JMF Esempio : PlayerApplet (2) Java Media Framework
JMF Esempio : PlayerApplet (3) Java Media Framework
JMF Riferimenti Java Media Framework API Guide, November 19, 1999, JMF 2.0 FCS Java Media Framework Basics, ibm.com/developerWorks http://java.sun.com/javase/technologies/desktop/media/jmf/ http://www.mokabyte.it Java Media Framework