Java Media Framework Inhalt

Werbung
Java Media Framework
Multimedia mit Java
Giuseppe Lisa
Inhalt
•
•
•
•
•
•
Was ist Multimedia?
Konzept von Java
Aufbau von JMF
JMF RTP
Java Sound
Beispiele
Was ist Multimedia?
• Der Begriff Multimedia schon in den 50er und 60er Jahren
populär dank dem Einsatz bei Diasvorträgen von
neuartigen Überblendtechniken und Ton.
• Unter Multimedia versteht man das Einbeziehen von Ton,
Graphiken, Film, Texte und Interaktivitäten in einer
Präsentation oder in Lernprogramme.
Konzept von Java
• JMF (Java Media Framework)
• wurde von Sun und IBM entwickelt
• ist eine Schnittstelle (API), um in
Javaprogramme zeitbasierende Mediadateien
(Musik,...) einzubinden
• „write once, run anywhere“
• „high-level“ Architektur
Entwicklung von JMF
•Version 1.0
• Präsentation von Mediadateien in Javaprogramme
•Version 2.0
• erfassen und speichern von Dateien
• Kontrolle der Prozessart bei der Wiedergabe
• Verarbeitung von Mediadateien
• hinzufügen von Plug-in‘s, um neue Funktionen hinzuzufügen
• zusätzlich ein MediaPlayer, ein Java Bean
• ermöglicht die Entwicklung von media Streaming und Konferenzanwendungen
• Zugang zu raw-Dateien (siehe Real-Player)
•Version 2.1 (seit April 2001)
• verbessert und RTP (Real-Time Transfer Protocol) Funktionen hinzugefügt
Input
Verarbeitung
Ausgang
• erfassen
• Effekte hinzufügen
• Präsentation
• von einer Datei lesen
• komprimieren
dekomprimieren
• Speichern
• vom Netzwerk
• konvertieren
• Ins Netzwerk senden
Interface Clock
• Präzision von Nanosekunden
• Schnittstelle, definiert zeitliche und
synchronisierende Grundoperationen bei der
Wiedergabe
• zeitliche Position bei der Wiedergabe wird
bestimmt durch:
• TimeBase
• MediaTime
• Wiedergabe-Rate
Das Zeitmodel
Event Model
• Jedes JMF Programm gibt bei einem
Ereignis, z.B. Dateiende, ein MediaEvent
zurück
• MediaEvent ist in verschiedenen Klassen
unterteilt
• nach dem Eventmuster der Java Beans
Class DataSource
• Beinhaltet sowohl der Ort, als auch das
Protokoll, als auch die Software, um
Dateien überzubringen
• wird mit MediaLocator oder URL
identifizert
Class DataSource
• Zwei Arten von SourceStream:
– standart data source: byte array als
Transfereinheit
– buffer data source: Buffer als Transfereinheit
• Zwei Arten von DataSource:
– pull data source: der Client fängt mit dem
Datentransfer an (Bsp.:http, FILE)
– push data source: der Server sendet und
kontrolliert Datentransfer (Bsp.: RTP)
Class DataSource
• Man kann DataSources klonen oder
verschiedene Datasources
zusammenmischen
• Dateien werden mit dem content type
referenziert
• Unterstützte Formate: AIFF, AU, AVI,
MIDI, MPEG, QuickTime, RMF und WAV
Class Manager
•Arbeiten zwischen den Strukturen von JMF
•Es gibt 4 Klassen:
• Manager: zuständig für die Konstruktion von
Players, Processors, DataSources und DataSinks
• PackageManager: verwaltet eine Datenbank mit
vordefinierten Players, Processors, DataSources
und DataSinks
• CaptureDeviceManager: verwaltet eine
Datenbank von allen verfügbaren Einlesegeräten
• PlugInManager: verwaltet eine Datenbank von
allen verfügbaren Plug-In`s
Class Manager
...
String mediaFile = getParameter("FILE");
try{
URL mediaURL = new URL(getDocumentBase(),mediaFile);
player = Manager.createPlayer(mediaURL);
...
}{catch(Exception e)}
{System.err.println("Got Exception "+e);}
...
Class Format
• Definiert exakt den Format der Datei
Interface Control
• Ermöglicht das Abfragen und Setzen von
Attributen
• stellt oft Benutzerschnittstellen zu
Verfügung
• Einige Controls:
–
–
–
–
CachingControl
GainControl
FrameRateControl
usw.
Interface Controller
• Definiert grundlegende Stadien und
Kontrollmechanismen eines Objektes, das
Mediadateien ausgibt.
• Definiert die verschiedenen Stadien beim
Aufbau eines Media Controller
• ein Controller gibt Events über die
verschiedenen Stadien
Interface Player
Datasource
Player
Aufbau eines Players
Unrealized
deallocate
realize
Realizing
RealizeCompleteEvent
Realized
deallocate
setMediaTime
prefetch
Prefetching
PrefetchCompleteEvent
Prefetched
stopped
started
StopEvent
Started
Interface Processor
Spur 1
Datasource
Spur 2
Effect Plug-in
Codec
Effect Plug-in
Datasource
JMF RTP
• Ermöglicht Wiedergabe und Senden von
Streams mit dem RTP (Real-Time Transfer
Protocol)
• Beispiele: Telefonbeantworter,
Videokonferenzen, ...
Interface SessionManager
• Koordiniert eine RTP Session
• registriert alle Teilnehmer einer Session und die
Streams
• Jeder Teilnehmer hat einen eigenen
SessionManager
• ermöglicht einer Applikation sich für eine Session
vorzubereiten und daran teilzunehmen
• kann individuelle Streams löschen oder die
Session beenden
JFM RTP
Netzwerk
SessionManager
DataSource
DataSource
DataSource
Processor
Player
DataSink
DataSource
Konsole
File
DataSink
File
DataSource
Processor
DataSource
SessionManager
Netzwerk
JavaSound
• Ist in JDK 2 Version 1.3 integriert
• Applets und Anwendungen mit Sound
versehen
• ist für Programme gedacht, die sich mit
Sound befassen (z.B. Synthesizer) oder
genaue Kontrolle über Wiedergabe
wünschen
Fazit
• leicht zu erlernen
• mit wenigen Schritte kann man eine
Mediadatei ausgeben
• bei schlechter Programmierung kann
der Computer abstürzen
Herunterladen