| |
MPEG-4-Video Standard
Seite 89 von 103
Technische Informatik
10.10.2003
Unter MPEG-J ist ein Programmierschnittstelle zu verstehen, die APIs in MPEG-4
spezifiziert, welche eine Ansteuerung eines systeminternen MPEG-4-Medienplayers mit
Java-Code erlaubt. Durch seine Plattform-Unabhängigkeit bietet Java ideale
Voraussetzungen, um MPEG-4 Medien zu bedienen. Die erste Version von MPEG-4
definierte nur einen parametrischen Umgang Medienobjekte, die höchstens noch über
eine Skriptsprache (JavaScript) programmiert werden konnten. MPEG-J erweiterte
diese Option durch ein programmatisches System mit dem Einsatz von Java. Die
sichere und stabile Sprache gestattet es Autoren komplexe Kontroll- und
Prozessmechanismen für Mediendaten zu entwerfen um somit audiovisuelle Inhalte
intelligent zu organisieren.
Eine Java-Applikation wird als ein separater Elementary Stream (ES) an das MPEG-4-
Terminal übertragen. Während des Demultiplexings wird sie automatisch an das MPEG-
J-Runtime-Environment weitergeleitet, von wo eine MPEG-4-Applikation neben den
Java-Basispaketen (java.lang, java.io, java.util, ...) auch Zugriff auf zahlreiche
Komponenten und Daten des MPEG-4-Players hat.
MPEG-J bietet dabei eine Reihe von APIs an, mit denen auf die verschiedenen Teile
eines Decoders zugegriffen werden kann und der Autor in der Lage ist mächtige Tools
zu schaffen. Obere Abbildung (Abb.43) zeigt wie eine MPEG-J-Anwendung in eine
MPEG-4-System-Umgebung integriert ist.
Scene Graph API
Soll dem Benutzer einen einfachen Zugriff auf den Szenengraphen ermöglichen.
Somit soll gewährleistet werden, dass der Benutzer über eine einfache
Schnittstelle Knoten des Szenengraphen manipulieren kann.
Media Decoder API
Dienen dazu mehrere Medien-Decoder einzubinden und zu kontrollieren (MPEG-
J unterstützt jedoch keine Decoder die über diverse Kanäle gedownloadet
wurden).
Device API
Bietet eine Kontrollmöglichkeit über die Input-/Output-Devices des Rechners.
Network API
Kontrolliert die Interaktion und den Datenfluss von Netzwerken. Ist dem DMIF-
API sehr ähnlich.
//Beispiel fuer die Verwendung von Netzwerk-APIs
//Kanaele werden verbunden/getrennt
import org.iso.mpeg.mpegj.resourceManager.*;
import org.iso.mpeg.mpegj.scene.*;
import org.iso.mpeg.mpegj.*;
import org.iso.mpeg.mpegj.net.*;
public class Net_Example implements MPEGlet {
MpegjTerminal mpegjTerminal;
Private NetworkManager netManager;
ChannelController cc;
Public void Net_Example() { }
public void init() {
mpegjTerminal = new MpegjTerminal(MPEGlet);
try {
netManager = mpegjTerminal.getNetworkManager();
} catch(NetworkManagerNotFoundException ex) { }
|  |
|
| |
|
|