Java Media Framework
Inhalt Java Media APIs Architektur Zeitmodell Manager Ereignismodell Datenmodell Control Controller Player Processor Plug-Ins Aufnahme RTP
Java Media Framework Java Media APIs Sound API 2D API 3D API Animation API Advanced Imaging API Telephony API Speech API Shared Data Toolkit API
Java Media Framework Architektur
Java Media Framework Zeitmodell MediaTime = MediaStartTime + Abspielrate * (TimeBaseTime – TimeBaseStartTime)
Java Media Framework Manager PackageManager CaptureDeviceManager PlugInManager
Java Media Framework Ereignismodell Listener MediaEvent wie AWT/Swing
Java Media Framework Datenmodell Datenquelle gemischte kopierbare Datensenke sink = manager.createDataSink(Datasource, MediaLocator); Formate af = new AudioFormat("ima4", 44100, 16, 2);
Java Media Framework Control Interface Erlaubt Zugriff auf Attribute von Objekten getControlComponent()
Java Media Framework Controller PlayerProcessor
Java Media Framework Player – State-Chart
Java Media Framework Player DataSource input = processor.getDataOutput() Player player = Manager.createPlayer(input); oder AudioFormat afs[] = new AudioFormat[1]; afs[0] = new AudioFormat("ima4", 44100, 16, 2); Manager.createRealizedProcessor(new ProcessorModel(input, afs, null));
Java Media Framework Processor AudioFormat afs[] = new AudioFormat[1]; afs[0] = new AudioFormat("ima4", 44100, 16, 2); DataSource input = processor.getDataOutput() FileTypeDescriptor output = new FileTypeDescriptor(FileTypeDescriptor.MPEG_AUDIO); Manager.createRealizedProcessor(new ProcessorModel(input, afs, output));
Java Media Framework Processor & Plug-Ins (De)Multiplexer Codecs Renderer Effekte
Java Media Framework Processor – State-Chart
Java Media Framework Aufnahme Aufnahmegerät mit Hilfe des CaptureDeviceManagers finden CaptureDeviceInfo-Objekt für dieses Gerät erstellen Datenquelle aus dem MediaLocator erzeugen Player oder Prozessor erzeugen, der diese Datenquelle nutzt Vector deviceList = CaptureDeviceManager.getDeviceList(new AudioFormat("linear", 44100, 16, 2)); deviceInfo = (CaptureDeviceInfo)deviceList.firstElement(); oder CaptureDeviceInfo deviceInfo = CaptureDeviceManager.getDevice("deviceName"); Player player = Manager.createPlayer(deviceInfo.getLocator());
Java Media Framework Speichern von Daten DataSink sink; MediaLocator destination = new MediaLocator("file://myfile.wav"); sink = Manager.createDataSink(processor.getDataOutput(), destination); sink.open(); sink.start();
Java Media Framework Real-time Transfer Protocol SessionManager RTP-Sitzung RTPEvents RTP-Daten MediaLocator rtp://address:port/content-type/[ttl]
Java Media Framework Ende Ende – Fin – End