/* * File : QT61Tools.java * Created : 19-sep-2003 11:01 * By : fbusquets * * JClic - Authoring and playing system for educational activities * * Copyright (C) 2000 - 2005 Francesc Busquets & Departament * d'Educacio de la Generalitat de Catalunya * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details (see the LICENSE file). */ package edu.xtec.jclic.media; import edu.xtec.util.ExtendedByteArrayInputStream; import edu.xtec.util.StreamIO; import java.io.File; /** * * @author Francesc Busquets (fbusquets@xtec.cat) * @version 13.08.29 */ public class QT61Tools extends Object{ private static QT61Lock lock; public QT61Tools() throws Exception{ if(lock==null){ //System.out.println("IsValid: "+QTBuild.isValid()); //System.out.println("Expired: "+QTBuild.expired()); /* System.out.println("Info: "+QTBuild.info()); System.out.println("Version: "+QTBuild.getVersion()); System.out.println("SubVersion: "+QTBuild.getSubVersion()); System.out.println("BugFixVersion: "+QTSession.getJavaVersion()); System.out.println("BugFixVersion: "+QTSession.getBugFixVersion()); System.out.println("DeveloperVersion: "+QTSession.getDeveloperVersion()); System.out.println("MajorVersion: "+QTSession.getMajorVersion()); System.out.println("MinorVersion: "+QTSession.getMinorVersion()); System.out.println("QTMajorVersion: "+QTSession.getQTMajorVersion()); System.out.println("QTMinorVersion: "+QTSession.getQTMinorVersion()); System.out.println("QTVersion: "+QTSession.getQTVersion()); */ lock=new QT61Lock(); } } protected class QT61Lock extends Object{ protected QT61Lock() throws Exception{ if(!quicktime.QTSession.isInitialized()){ quicktime.QTSession.open(); } } @Override protected void finalize() throws Throwable{ quicktime.QTSession.close(); super.finalize(); } } public static quicktime.std.movies.Movie getMovie(Object source, boolean midi) throws Exception{ quicktime.std.movies.Movie movie; quicktime.util.QTHandle handle=null; String sourceName=""; if(source instanceof ExtendedByteArrayInputStream){ ExtendedByteArrayInputStream eias=(ExtendedByteArrayInputStream)source; handle=new quicktime.util.QTHandle(eias.getBuffer()); sourceName=eias.getName(); } else if(source instanceof File){ sourceName=((File)source).getName(); if(midi){ handle=new quicktime.util.QTHandle(StreamIO.readFile((File)source)); } else{ handle=new quicktime.std.movies.media.DataRef(new quicktime.io.QTFile((File)source)); } } else if(source instanceof String){ sourceName=(String)source; if(midi){ handle=new quicktime.util.QTHandle(StreamIO.readFile(new File(sourceName))); } else{ handle=new quicktime.std.movies.media.DataRef(sourceName); } } if(midi){ quicktime.std.qtcomponents.MovieImporter movieimporter = new quicktime.std.qtcomponents.MovieImporter(quicktime.util.QTUtils.toOSType("Midi")); movie = new quicktime.std.movies.Movie(1); movie.setDefaultDataRef(new quicktime.std.movies.media.DataRef(new quicktime.util.QTHandle())); movieimporter.fromHandle(handle, movie, null, 0, 1); } else{ quicktime.std.movies.media.DataRef dr; if(handle instanceof quicktime.std.movies.media.DataRef) dr=(quicktime.std.movies.media.DataRef)handle; else{ String extension=sourceName.substring(sourceName.lastIndexOf('.')); dr=new quicktime.std.movies.media.DataRef(handle, quicktime.std.StdQTConstants.kDataRefFileExtensionTag, extension); } movie=quicktime.std.movies.Movie.fromDataRef(dr, 1); //movie=Movie.fromDataRef(dr, StdQTConstants4.newMovieAsyncOK); } return movie; } /* public static QTPlayer getPlayer(Object source) throws Exception{ QTPlayer player=null; if(source instanceof ExtendedByteArrayInputStream){ ExtendedByteArrayInputStream eias=(ExtendedByteArrayInputStream)source; String s=eias.getName(); s=s.substring(s.lastIndexOf('.')); player=(QTPlayer)QTFactory.makeDrawable(eias, StdQTConstants.kDataRefFileExtensionTag, s); } else if(source instanceof String){ player=(QTPlayer)QTFactory.makeDrawable((String)source); } return player; } */ public static quicktime.app.view.MoviePlayer getPlayer(Object source) throws Exception{ quicktime.std.movies.Movie mv=getMovie(source, false); return new quicktime.app.view.MoviePlayer(mv); } }