Quicktime for Java Als Alternative Zum Java Media Framework

Quicktime for Java Als Alternative Zum Java Media Framework

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    26 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us