| CARVIEW |
|
keaton
|
| Summary | Java-to-QTKit wrapper for using QuickTime in Mac Java apps |
|---|---|
| Categories | None |
| License | The MIT License |
| Owner(s) | invalidname |
Calling QTKit from Java
The Keaton project is an effort to put a Java wrapper around the Cocoa-based QTKit framework, making it easier for Java developers to use QuickTime features on Mac OS X.
Why QTKit?
QTKit seems to be the future of application-level multimedia development on Mac OS X. While the framework is fairly simple and limited in its Tiger version -- consisting of only seven classes so far -- there is reason to think that it will supersede the Carbon-based procedural-C QuickTime API eventually. One point indicating that QTKit is the future of QuickTime is Apple's comment in its Leopard overview that QTKit will be the only way to write 64-bit QuickTime applications; the "classic" QuickTime API will remain 32-bit only.
Keaton for application developers
When released, Keaton will look like a fairly simple multimedia framework, consisting of just a handful of classes. These classes will map one-to-one with their Objective-C equivalents, making porting easier. For example, if you had the following QTKit code in Obj-C:
// assume a QTMovieView, "view", has been created with IB
NSURL* url = [NSURL URLWithString:"https://www.company.com/movie.mov"];
QTMovie* movie = [[QTMovie movieFromURL: url];
[view setMovie:movie];
then the equivalent Keaton code would be:
QTMovieViewComponent view = new QTMovieViewComponent();
java.net.URL url = new java.net.URL ("https://www.company.com/movie.mov");
QTMovie movie = new QTMovie (url);
view.setMovie (movie);
The goal of the project is to map all QTKit methods to Java, except
in cases where the method call is only of relevance to Cocoa. It
uses a combination of Java and Objective-C source. The project
creates a JAR and a .jnilib file, both of which can be
dropped into the /Library/Java/Extensions folder to make Keaton
available to all applications.
Keaton for project developers
Currently, the project uses an ant script to build both the Java
and native code. Note that the ant call to gcc
currently can't deal with spaces in the path to the Keaton
folder. An XCode project file is a to-do.
The README file has more information on building the
project, but the quick-start is to just cd to
the code directory and do ant code. You
can also run a simple test application with ant run.
Note that you must have the Mac OS X 10.4 SDK, which is available as part of
the XCode tools install, to compile this project.
What about Lloyd?
The Lloyd project was started as an attempt to extend the capabilities of QuickTime for Java, by providing Java wrappers to functions not exposed by QTJ (such as new features in QuickTime 7, like extended metadata support and frame-reordering codecs), and by creating all-Java convenience classes where approriate. However, QTJ is clearly headed for obsolescence, if not explicit deprecation, as Apple has not significantly updated it since late 2003, despite the addition of major new functionality to the underlying QuickTime framework, and the deprecation of some of the frameworks that QTJ depends on (QuickDraw being the most obvious example). With its QT/QTJ foundation crumbling, there is no point investing any further effort in Lloyd.
QTKit is the future of application-level multimedia support on Mac OS X, and that's what Keaton will work with.
| Powered by CollabNet | Feedback |
FAQ |
Press |
Developer tools
© 1995 - 2007 CollabNet. CollabNet is a registered trademark of CollabNet, Inc. |
