private void startQuickTime() {
		hasQuickTime = false;
		try {
			movieClass = Class.forName("quicktime.std.movies.Movie");
			movieControllerClass = Class.forName("quicktime.std.movies.MovieController");
			openMovieFileClass = Class.forName("quicktime.io.OpenMovieFile");
			qdRectClass = Class.forName("quicktime.qd.QDRect");
			qtDataRefClass = Class.forName("quicktime.std.movies.media.DataRef");
			qtFactoryClass = Class.forName("quicktime.app.view.QTFactory");
			qtFileClass = Class.forName("quicktime.io.QTFile");
			qtSessionClass = Class.forName("quicktime.QTSession");
			timeRecordClass = Class.forName("quicktime.std.clocks.TimeRecord");
			Method isInitialized = qtSessionClass.getMethod("isInitialized", new Class[0]);
			synchronized (lock) {
				if (isInitialized.invoke(null, new Object[0]).equals(Boolean.FALSE)) {
					Method open = qtSessionClass.getMethod("open", new Class[0]);
					open.invoke(null, new Object[0]);
				}
			}
			Method getMajorVersion = qtSessionClass.getMethod("getMajorVersion", new Class[0]);
			version = ((Integer) getMajorVersion.invoke(null, new Object[0])).intValue();
			if (version < MIN_QUICKTIME_VERSION) {
				throw new ErrorException("MovieClip requires QuickTime V7 or later");
			}
			hasQuickTime = true;
		} catch (Exception ex) {
			errorMessage = ex.getMessage();
		}
	}