Quicktime for Java als Alternative zum Java Media Framework
peyote Informationsdesign Ges.m.b.H.
DI Christian Liska mailto:[email protected] Quicktime (1)
' Apple: „At its simplest, QT is software that allows you to play back media on your computer. But it is also a whole lot more...“
' File Format
' Suite of Applications
' Quicktime Player
' Quicktime Plugin
' Quicktime Pro Quicktime (2)
' Plattform for Media
' Audio/Video capturing
' authoring content
' adding interactivity to static media
' ... API JavaMediaFw.
' Sun: „... enables audio, video and other time-based media to be added to Java applications and applets.“
' capturing, playback(ing), streaming, transcoding multiple media formats
' ... API, which extends the multimedia capabilities of J2SE. QT vs. JMF (1)
' Quicktime ' JMF
' standalone ' integrated in Java Media APIs ' Platforms:
' ' Windows Platforms:
' Apple ' Solaris
' Linux
' Windows
' Cross PF QT vs. JMF (2)
' native ' pure Java with implementation nat. performance packs ' no source code
' source code ' docu online available (SCSL)
' complete docu. online/download QT vs. JMF (2)
' native ' pure Java with implementation nat. performance packs ' no source code
' source code ' docu online or buy a book available (SCSL) ' complete docu. online/download Mediatypes (1)
' Quicktime ' JMF IMAGES
' all standard types ' no image types by (BMP, GIF, default JPG,TIFF,PNG ...)
' Photoshop (with multiple layers) Mediatypes (2)
' Quicktime ' JMF VIDEO
' AVI, MPEG-1, MOV ' AVI, MPEG-1, MOV Quicktime JMF Animation j - Apple BMP j - Apple Video j - Cinepak j j Component V j - DV NTSC j - DV PAL j - H.261 j j H.263 j j MS OLE j - MS Video 1 j - Motion Jpg A j j Motion Jpg B j j Photo Jpg j - Planar RGB j j Sorenson V1/2 j - Mediatypes (3)
' Quicktime ' JMF Audio
' AIFF, AU, Karaoke, ' AIFF, AU, MIDI MIDI, MP3 (1, 3), (1,2), MP2 (1,2), M3U, SF2, Sound, MP3 (1,2,3), Wave Wave Mediatypes (4)
' Quicktime ' JMF „Multimedia“
' Macromed. Flash 4 ' Macromed. Flash 2
' VR Mediatypes (5)
' Quicktime ' JMF Exporter
QT-Export JMF-Export AIFF j j AU j j AVI j j BMP j - DV-Stream j - Jpeg j - MIDI j - Photoshop j - PICT j - PNG j - QT-Img j - QT-MOV j j SGI j j wav j - TIFF j - Mediatypes (6)
' Quicktime ' JMF Capture Devices
' all devices ' support under supported by QT- Solaris and Pro Windows
' Webcams (QuickCam VC, Creative WebCam)
' Solaris: SunVideo+ Quicktime API (1)
' „programming“ multimedia
' written in native C st ' QT-Java-API 1 demonstrated at Java One 1998 java.* quicktime.* JNI
java-lib quicktime-lib OS Mac Win Quicktime API (2)
' API to directly acccess QT native runtime library - quicktime.std.*
' set of packages that forms the basis of Application Framework (focus on presenting different kinds of media) - quicktime.app.* Quicktime API (3)
' services
' creation of objects for different forms of media - QTFactory.makeDrawable();
' utils for dealing with single images
' composition services for layering and blending
' timing services
' video/audio capturing from external sources
' visual effects architecture Demo:QTSimpleApplet
public class QTSimpleApplet extends Applet { ... public void init() { try { QTSession.open(); setLayout(new BorderLayout()); mQTCanvas = new QTCanvas(...); add(mQTCanvas, „Center“);
QTFile f = new QTFile(...); mQTDrawble = QTFactory.makeDrawable(f); } catch(Exception e) { //... } }
public void start() { mQTCanvas.setClient(mQTDrawable,true); }
public void stop() { mQTCanvas.removeClient(); } Demo:JscriptApplet
' controlling a movie within a browser using JavaScript public void start () { ...canvas and file as before OpenMovieFile movieFile = OpenMovieFile.asRead(qtf); Movie myMovie = Movie.fromFile(movieFile); myPlayer = new MoviePlayer(myMovie); myCanvas.setClient(myPlayer, true); }
public void resetTime(int time) { myPlayer.setRate(0); myPlayer.setTime(time); }
public void pause() { myPlayer.setRate((myPlayer.getRate() == 0 ? 1 : 0)); } QTCanvas
' specialized Canvas that supplies access to the native graphics environment
' instance of QTCanvas can display any object that implements the Drawable interface
' setClient() associates a new client with the QTCanvas QTDrawable
' encapsulates common operations that can be applied to a QT drawing object
' expresses the required methods that QTCanvas needs to draw its client
' QT-objects that implement QTDrawable:
' QTPlayer, MoviePlayer, SGDrawer, ... QTFactory
' provides factory methods for creating classes used to present media that QT can import
' QTFactory.makeDrawable(): type object ' file movies QTPlayer images GraphicsImporterDrawer ' HTTP sound QTPlayer ' FTP MIDI QTPlayer ...... ' RTP etc, etc, ...
' Fullscreen-support FullScreenWindow w = new FullScreenWindow( new FullScreen(), myPlayMovie); ... QTCanvas c = new QTCanvas(...); w.add(c); c.setCanvas(moviePlayer, false);
' QTEffect forms base class for vis. eff. (bluring, detecting edges, ...)
' full support of Quicktime-VR
' etc, ... peyote – Kiosk
' framework / system to present multimedial content
' integration of 2d and 3d
' intuitive UI
' contact-free content controlling Implementation
' based on Java3D and JMF
' large videos -> problems with performance and playback
' customers need variety of media types
' migration to QT / integration of QT
' design of player plugin technology
' definition of kiosk interface classes
' plugin via abstraction layer
' first plugin „only“ for videos and sound
' prepared for integration of QT-VR, Flash-4 Demo
euroshop'02
CeBIT'02 Thanks
' contact:
' http://www.peyote.cc
' mailto:[email protected]
' peyote Informationsdesign Ges.m.b.H. Mariahilferstrasse 51 1060 Wien
' phone: +43(1)5850537