Quicktime for Java Als Alternative Zum Java Media Framework
Total Page:16
File Type:pdf, Size:1020Kb
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.