---
title: WWDC2000 Session 302
framework: wwdc
role: article
path: wwdc/wwdc2000-302
---

# WWDC2000 Session 302

## Transcript

Kind: captions Language: en please welcome ian ritchie well hello everybody and welcome to WWDC I always look forward to this conference every year the whole quicktime engineering team always puts a lot of effort into we're going to be showing you a lot of different ways to use quicktime and also have a lot of fun with it night is I'm encouraged that so many of you made it safely across the street to come over here and join us in the Civic Auditorium ok so this morning when you got up or most mornings when you get up you find yourself gravitating over to the computer turning on your browser perhaps much to the chagrin of your wife or children and checking out your customized news page mine happens to be an excite that tells me what I'm interested in mostly in technology some of the sports the basketball playoff follow that absolutely no horoscope is on my page and and yet my sister goes out to a web page and I think all her all her pages is astrology and horoscope and you know kittens and these types of things and news for the weird so basically what's going on in these situations is unlike the early days where I de las a web page and it'd be the same thing every day I go back to it even a few minutes after that it go back it's the same and nowadays I can come back to some of these like excite or Yahoo Microsoft they have customized web pages that change with me every time I change for me every time I come there so I'm going to go back to these sites more often because it's a better experience for me so the way that you've set up your own custom pages and your preferences for your own experiences on the web we want to show you a little bit today how to do the same thing with quick so that your multimedia experience for yourself or for your clients is much more beneficial okay so I'm sure everyone here is played movies from the web typical response as you go out and click on one of the trailers or click on a page and a request is sent from your browser or from quicktime player after the server hey I want this movie and then it plays and everything is really good and that's the end of that conversation sometimes you'll be using CGI's and it'll go out talk to that application it'll send data down and so we're gonna go through some of these techniques that on the server side of things and somewhat inside of movies that you can not necessarily tricks but techniques and the technologies that's there today so you can take advantage of it okay so let's look at a typical URL this is what you stand up to the server from your machine and first part let's break it down when you're having a conversation with someone else you always want to make sure that you're speaking the same language so the HTTP is a protocol that we're using and we're going to the server at apple com so we know what machine we're going to be talking to and then we'd also like to know what file we're requesting so when this happens we get the file back and that's the end of the conversation ok here's another very common URL using a cgi common gateway interface whatever cgi okay it's an application that's out there on the server that's going to take your request and do something with it okay so once again HTTP is a protocol that we're using we're going at this time with the search engine Google or the search side and we're asking for their search CGI application running on that server to respond to the parameters that we pass into them and so it will take that it is just an application very simple and it will run and then its sense of fact something now usually we don't know what we're going to be getting back so let's look at a typical request for a web page okay we send out we say I would like my web page of HTML and we send this information out to the server this is what it gets and says okay I now have the state i'm going to send it to you but first let me tell you what type of data it is this is HTML in the form out of text and then you see after the return the head and the meta name and the rest of the following down okay so we know how to respond to this on the other side another request we often get give and in this case it tells us the image is a tight gift and so now on the server on the client and we know how to respond to that differently okay so the idea here is that we request for something from the server and then it responds to us often in predictable ways and often not let's go through some of the requests and responses that we can get I'd like to bring Jim Batson out he's our chief quicktime architecture longtime friend and the guy leading the quicktime effort now see okay so now we're going to talk about things that relate more closely with quicktime okay so let's skip the redirect right now and go down to some of the mime types now the first two are common just binary versions of data that will come down that you play inside quick time there's video / quicktime says it's a QuickTime movie please play it image X quicktime is for image Kiki I kind of files for time image format files okay and there the other ones so let's get the binary ones because those are typically hard to generate from a CGI script okay instead we're going to talk about things that are more natural to see GIS and the first one is a redirect okay where you go to one place you jump somewhere else and the other three are text types there's HTML plain text and smile file going to go over those individually so let's take a quick look at what a redirect looks like so what'll happen is you do request and in the head of the request you'd say I want to go some player specific on this file from the net in this case it's from you know quicktime com imagine we're calling a TGI random movie got CGI and we set it the parameter genre comedy and then a redirect to just come back and say well instead of company in you know instead of the URL use originally thought go to this one this case you know a movie about with Laurie Anderson so how does this happen in an HTML request first there's the request and in that is once again here my web page HTML and what comes back is a 302 redirect which is in the header of the response and here we can see there's the location and it doesn't have to stay on the same webpage excuse me the website or server it can go totally somewhere else in this case X wavy.com and different file name okay so we're going to show an example of redirect here okay first I'm going to go ahead and get them on machine one great thank you okay i'm going to just open a URL and i'm going to drag off here and so let's look at that request first of all issues p here's the server and here's the cgi you arrive running which just happens to be on this machine here and here's the parameter to that so it sends it and redirects to this movie we'll play it elite hearing has to be able to take responsibility without letting it turn his head our some sellers when given a little Authority they seem to change some in one way summon another okay so let's open that same URL again I'm get redirected somewhere else I know dear but I'm thinking of something else too and take a little conspiracy conspiracy a nice little conspiracy yeah of course we can just keep doing that over and over again we'll just get in on a movie this contemporary home shows how modern asbestos materials can be adapted to any style or design notice now the asbestos cement sidewalls help add dignity and charm so back to slide please so hopefully I was informative as well as [Music] entertaining back to slide please so let's talk a little bit about the text I'm texting text days of contact in the form of HTML okay so HTML is the format that you get data for for web browser so how does that relate to quicktime well quicktime will play inside a web browser through a web page with h RF tags or embed tags and embed tags are what you use to actually embed a movie right in the middle of your web page so you see that all the time right you go to movie trailers you play movie that will come down so the standard form of the embed tag is embed source equals and in this case the name of the movie hip move okay so what can go wrong well quicktime has to get the movie has to get the data in order for us to actually see the moving plate and hopefully life is all good but unfortunately that's not true put in all cases there are two reasons you might not get that one is that quick times not install at all and the second is that someone's hijacked the mime type okay in the ville users machine's not properly configured and instead of a quick time getting the movie video / quicktime then goes jumped off to some other application i can't even read that movie so let's think about that let's pick a look at solving that first problem how do you check for quicktime on your pages first thing you can do is use run some javascript okay you have to figure out what OS am i running on so your choices with mac or windows if you're on the mac then you need to check the browser okay and then if you find out you're running netscape or ie5 then you can run some javascript to check for the plug-in and then if you have plugins there you know you've got quicktime installed it's not there quick times not installed now in the case that it's not I e5 or some early version of ie you can just assume yes on the mac platform okay because the other choices just say well I don't know what to do now in Windows slightly different situation on Netscape you do the same thing you can run some to check your plugins it's kind of cool at the same technology work technique works for both but not for ie okay so for I e on windows what you have to do is until quick time for 11 so you were kind of out of luck okay because there's no way that you can really see if quicktime was installed with 411 we've shipped a an ocx called quicktime check which you use to invoke actually instantiate it from a vbscript and call it and that will do the checking for you and it will return that well quicktime themselves or not so this is answer the question is quick time around at all so the next thing you have to do is worry about is a configured okay and there really isn't a great solution in terms of making sure the machines always configured for QuickTime so you can just use source equals movie and the problem is that there's no real web etiquette for mine patent you know mine type management what will happen is that whoever installed last wins so the solution we have is kind of work around the problem by using a file type that you asked for which at this point anyway no one else it has hijacked so that type is that QPS file that Kiki I file please okay so what's happening if you look at the embed tag is that you say source equals you know some file name cutie I now this file doesn't actually have to be an image it could just be zero length it just has to exist on the server and then cutie source in this situation then the plugin will get it and then with the Qt source added to the embed tag quicktime will play that movie so now that you've been able to actually make sure quicktime is going to be invoked with your bed tags or some interesting things you can do there's a whole list of different kinds of things you can add you in bed tags but one of the cool ones is QT next so the first example here is it allows you to chest chain movies so you can easily put together a little page at then we'll play movie 1 2 and 3 and stuff there's all sorts of things you can do and the second example is where you say doing the same kind of thing I'm going to start with an intro movie okay and then I'm actually going to call CGI which will generate a random movie okay and then the special interpretation of go to one will then go to reload GT next one so will happen then is then we'll just play the movie again but this time since we're using a CGI that we just showed before you get a long-playing infinitely long playing movie inside browser we go back it goes to demo one please so first let's look at the HTML page and here it is standard kind of HTML looking a little bit light for anybody and here it is here's the source we're just using cutie I to make sure that quick time gives chance to play the file and here's a real movie it's at st. CGI were using before and one thing to note is that width and height applies to source and QT source if you're in the situations that quicktime isn't there the source file will try to play in fact little happiness you'll get a broken icon that's why it's really important to make sure that quick time for is installed on that machine and this will just reload QT source so go and play that in the browser this is the American dream of freedom on wheels an automotive age traveling on time saving superhighways futurama's free-flowing channels of concrete and steel for while metal coins are handy for dealing in small amounts of money when transactions require larger amounts paper money is far more practical a five-dollar bill for example is much easier to handle than say five dollars in time and just imagine buying something that costs a hundred dollars and paying for it with 10,000 cents important information for all keep in mind back to slide please so let's go back to some of the other types of we talked about that are really applicable to see guys because they're textual in nature and the next one is text a plain text that will come down this is very similar to just having a text file on your local machine that you just send open with quicktime player quicktime player will import that file and just show you the text it was a first kind of started for doing subtitling and but the text can be styled have colored size and do other interesting things and actually hands back up to show us because he's the master of old texts I remember a few years ago I met a bunch of developers at a conference and they said oh you work on quicktime that's cool Oh tax huh well someone had to and I tried to feel good about myself actually there's there's an awful lot of text in everything that we're doing with the internet these days so there's almost a resurgence of text inside a quick time and some of the stuff has been laying dormant there that you can take advantage of let's show first a simple text file with simple tags and let's open up quicktime player and import this file and typically what you get is the 12-point Helvetica tags you know you can go from one slide to the next and typically we used it for closed captioning or for subtitling your text but you can go in and add a lot more to the text up here it's a little bit complicated but you can treat your simple text file and export it with a text descriptor setting and all this will play out for you and we also have a web page up that will show you how to use all the texts descriptors but the idea is I took that same text that we had and we went in here and we added different sizes like we can make this one no make it really big and then you can change you know the text color we can make it all red so then when we take this file and import it into quicktime again it just takes on the attributes of whatever you put inside the text file the great thing is your CGI can automatically generate text real easy and in format and pass it down into quick time and it can be embedded as data or it can be tagged as of type move and we'll just play it automatically as though it's a movie you'll see more on this later being used in the web objects demo each one of these have URLs associated with them so if you click on them it will go to various URLs or in this case going to weblogic CGI which you'll see more on that later hey Jim slide please okay now we're going to move on okay now we're gonna move on to small file okay the other types of files that come down for you is that's really useful in the context of CG is and server side stuff is file because smile allows you to compile to create presentations where you can compose the temple data okay so you can play movie after movie or image after image or layout audio tracks in any order that you want and also specially for image related things so let's take a quick look that at the structure of a smile file or you know anything about HTML this looks pretty familiar too smiles xml-based and thus has pretty related to HTML we see there's a head and a body inside of a smile document and typically in a head you'll have a layout area which describes presentation area there's if there's no visual aspect of it there you don't need to have a layout area but there's a route layout which defines the complete enclosing area and then you can then you have to define regions inside that route layout that you have images or videos play into okay and so what you can do is you can have one route layout and create a bunch of different regions and then play into them now inside the body portion is where you say what media are going to play okay and in this case we have a couple of videos that are playing in sequence the default in the body section is that this is a sequential playback so first intro that move will play then main Google Play so that's an implicit sequential block if you want to make it explicit you just add the seek to the Sikh tags and once you have this section of see cuz it becomes like its own block so I'll become evident later now if you want to do something where you do things in parallel use of pair tags here we have an image picture.jpg that's being displayed at the same time or playing audio and instead of using image or audio you could put in a block of sequence of Sikhs of the sequential section and just play another sequence of stuff so going to go to demo and do a quick sample of smile and depending on what state I'm in no more of the line okay so here's a relatively complicated one I'm going to go ahead and tear this down a bit and just create something which is a little simpler to start with one thing you is kind of interesting with smiles that anything that passed the / smile tag is supposed to be ignored so we can go ahead and throw a lot of stuff away and what I want to first show you is kind of like a very simple document that's all it's going to do is play some audio if I just say that I can open it and can play it [Music] of this section you'll notice the chapel's change over so this is one way to set up the slider inside of a small document and let's go back to the full-blown thing here before and what we'll take a look at this there's a lot of these extension tags will talk about in a minute here's the layout information in the head section using a meta tag here to give it a name and we he just have one region for an image and here's the image down here so we have a sequence of audio tracks and then in parallel we going to show an image I want to save it go back out drop it on quicktime player and here we have basically an album cover with the tracks in there you can use the chapter tracks to go between so this go back to slide please now there's a basic layout of ordering your media and putting them on the screen and also just in time quick times added some extensions to smile which we find really useful for doing quicktime presentations and how that gets expressed in the smile document in the smile tag at the top as we have this xmlns which means xml namespace and you're saying of giving it a name here cutie and just but and then you have this URL which then specifies that extension explicit uniquely across different presentations so between any smile files now the cutie is something that you gets to make up by conventionally just always just use cutie but you can make that foo and then when you use that down below and like for the autoplay so saying cutie colon autoplay could be food colon autoplay and so what are some of these extensions there's some attributes that apply to the root which is to the whole presentation there's autoplay which says when i open the movie as soon as you can start playing it okay there's next which is just like cutie next that we saw in the embed tags for HTML pages there's time slider which lets you control whether to use the time slider because sometimes depending on the kind of presentation you put together with a smile file you've seen this line at the time slider is a very confusing is very erratic and so you just don't even want to see that the things we've shown today or you know they make sense you can see the time slider but sometimes they don't and there's chapter mode that says when I give me when you give me a time slider give me something which is for the whole movie or only show me the slider for when I'm inside this chapter so I'll see when I'm at the beginning and end of the chapter when I go the next chapter I'd go back to the beginning of the time slider also media attributes that you can set which you can have our attached on base in Chapter attached time base is used when you have something like a sprite of your wired action movie that you don't want a time base attached to it okay because then I'll just confuse the movie and there's also chapter which allows you to find what the chapter name is and that's how the pop up that's the pop up but the chapter names work in the controller in the previous example you can also do anchor tags so that you can click on an area and then you'll jump to you a URL and the other various one is a target of QuickTime Player that way wherever this movie is played if it's in the browser or your email app or whatever if you then click on it and then you launch go to a URL will open it in the quicktime player okay will show this a little bit more smile here's an example which actually defined three different regions and put in so we have left half by top quarter right bottom quarter and then if using h RF tags and this is all shown in parallel so when you play it you can see that you have the three regions and these are actually click throughs to those places so we click here we go to page okay critically low 101 okay so and then finally I want to show you an example it's kind of ties us all together with we are both client here's a smile file but there's something might not expect what this is an example where kind of pulls all these different things we've been talking about together the small file is actually just laying out to movies okay this bottom portion of the movie is a wired action movie and so I can click on the button and things change notice that every time I get to play a new movie comes up so that's actually using that redirect technique by asking a that going to the CGI and say give me the next movie and let's play you can increase your profit you can bring many potential customers into your store you can add dollars to your volume okay so the interesting things with this guy is that we've got these thumbs up thumbs down button so you say oh I like that movie which then sends another CGI request is the same another request of that same CGI which will then tell us how many other people like the movie okay and this is actually coming back in a smile form with some embedded text which gives us from formatting capabilities and some colorization of the text okay so we can go next one [Music] well that that was kind of boring sorry okay so we'll go ahead and and click here and you can see that it's live by well with the only one that washer so let's pretend we liked it this time so just click here and it loads it again and it just changed okay back to slides and I think times begin as you've noticed over the last few years and in particular in this session quicktime has taken a lot of steps to take advantage of people being connected to the web and here at WWDC the web objects team has I believe 18 different sessions going on and we're lucky to snag one of their engineers to come show us how they've written some smile export components and tied the game with labs objects and interact with QuickTime it'll be more of this shown in tomorrow's interactivity session but we ask them to come give us a glimpse here so if you could welcome Ron loosing webobjects engineer thank you so I started off with web object and wanted to hook it up this month to a quick time using smile and so I wrote a simple little framework semi simple that actually brings all the power of web object and all the power of QuickTime together using smile so I could there we go so just putting them together we have this we have what i call client-server movies so what I want to show you is how I got what objects talking to quicktime without necessarily using any smile but generating quicktime compatible content some of the Qt tech stuff that that was shown earlier and the point of this was to actually bring some interactivity to the client just by making the movies dynamic and talk to the server whereas the web objects and smile stuff that i did was kind of geared towards generating the movie dynamically versus having dynamic movies two opposite two different things in my mind so so let me show you on demo one here my idea of making movies dynamic see so I can get this one so I've got live stage pro here demo version of live stage and got a movie track and a sprite track and if you can see here there's a little icon here that's the actual sprite the whole the sole purpose of the sprite is to go out to the net and load a movie the URL that it goes to actually is the URL of the web objects app that I've got running simple little thing a lot of you probably know how to do this already and [Music] and the cool part about this is each time you click you'll end up getting a new movie okay so an extra six well thank you lovely demo okay so so I can show you that i have my app running here what should happen that didn't happen [Music] well okay what should happen is that each time you click you bring up a new movie it's similar to what was shown before but talking directly to webobjects demo errors no okay and back with the slides though I can so that's what should have happened there was every time you click it goes out to the web objects application the specific URL that the sprite action just right invokes or goes to is a trigger to web objects to go into the database look for all the movies with a shirt certain genre and then oh okay back up a little so I've got a small database here where I put in some information about some QuickTime movies that I've got on a streaming server so things like the title the artist duration of the movie and URL on the streaming server to go to could I have the slides back up please so what web objects will do that URL triggers some logic to go through the database find all of the movies that are pop rocks and pop rock music videos and deliver one of those movies at random back to the thank you back to the QuickTime engine and so in live stage let's see so for dynamic movies my idea is that the user asks for the resources and taught in talks with a server versus dynamically making movies creating movies dynamically on the fly where the layout of the movie the resources and movie change depending on some state either user defined or something in your business logic in the database time was gay you know change of the moon all that stuff so back on demo one and demo actually demo for please thank you so this is my web objects application the main thing is there is a framework low dude navigating windows beautiful so how many of you are familiar with webobjects actually well yeah very cool if you guys tried connecting QuickTime in with objects before how many yeah oh very cool you're on the right track very good so what I've done in my framework I've got some code and some resources that actually implements a lot of the elements in the smile spec a lot of the classes the route layout regions media elements of the media objects and what this lets you do is build an athletics applications include this framework in your web app and you're able to lay out smile documents using our very cool web objects builder so here's a video page I've got here we go so do now the unfortunate thing is because with objects was kind of an webobjects builders kind of geared more towards originally geared towards developing web pages the use of UI for xml isn't that great but you can see here all the elements that go into my smile movie and what happens is a lot a lot of these elements are bound at runtime two things in your business logic on the app server side so here I can figure out the artisan title from the database what the next song is the URL for the next song and you get a lot of this stuff for free with webobjects whereas you could do it in cgi's normally you get things like session management for free using web objects you get things like resource management connections for the databases for free being able to tie in a lot of really advanced technologies into the cool quicktime technology that we've got see second of this license thank you so area so that's the whole point of trying to use web objects to generate smile content for a quick time using web objects is your server side scripting solution I'll actually have the framework and a working example up on enterprise at apple com / WWDC 2011 succession session for 11 if anyone's interested for going further into detail at how web objects is doing all this stuff and a larger examples of using QuickTime with web objects and plus because web objects is now on sale for ninety-eight percent off there's no reason to not try it out you should go out and he's all got demo versions of love objects and once you pick up my framework you should be able to try this out I think you'll be very happy with that I'll hand it over okay excellent so when you think about it ninety-eight percent off you know we're all going to rush out by one right now just just think of a gentleman that bought it friday like yeah and that purchase orders going to come through in six weeks it's like a lot of explaining to do i'm sure they'll figure it out so some of us here in the quicktime group have written our by Kevin Calhoun rotas CGI with hypercard which is so you you know some things that you can do today was very I wouldn't say basic tools is actually pretty expensive but a longtime friend I guess is how you think Myra card so you can see that tomorrow in the interactivity session will show slides afterwards for the road map but some a lot of excellent things that people are doing with smile and using QuickTime so we look forward to that and get in the hands of you guys because we thought you know what in the in the quicktime group we're sort of looked at it's not the roll group the sort of that connotation with an apple that you go out and do your own thing and you're thinking out of the box and you know we thought we're a bunch of crazy and somewhat sometimes clever individuals and then we come across the gentleman that's more crazy and more of a lunatic than any of the rest of us on the team this guy just takes quick time to the next level man you're just insane I mean it's great brilliant wonderful definitely thinking out of the box and this individual is Matthew Peterson neurosciences from Berkeley and we like to welcome him now to show us something to eat and working pretty bright out here I'm going to get suntan my back and my neck Apple so um I'm going to be talking about quicktime application so i'm not going to be comparing quick time to reel or windows media player it's more on the same part as java and what you can do a shock wave and and mostly why am i showing you is just a bunch of demos so what is it what is a QuickTime application well here the clintus quintessential desktop accessory is a calculator so this is all a QuickTime movie and it has these extendable regions and can do tangent functions and square roots so this is just so this is also all what I'm going to show you all the movies i'm going to show you we're all done all created with live states live stage pro and you can get it if you want to do anything like any of the stuff i'm going to show you so this top today's topic is how to interact with the server how about how does QuickTime movies in act with the server so this doesn't really interact with the server but I'm going to here's another little application it's a little URL launcher so let me launch up a webpage maybe it won't come up so we got a freeze here okay so this is coming off of France so maybe it's a little bit slow come on France are you still there okay good so this right here is a little clock and how does this clock interact with a server well I can set the alarm and if I close the movie and I reopen it you should remember my setting so it saves this into a little cookie there's a lot of ways that you can have a information in the movie save either can be saved on the server saved locally in a cookie file or it can there's you can actually there's ways to save things on little text files on the local drive and I'm going to be getting a little bit more into that and one other way to pass information to a movie is when we show you in here is there's not very many ways to communicate with the movie but one way is you can just send to have a server send you a little movie so in this in this one this little this thing right here this is a this is a movie that contains a bunch of sound for each number and when i type in a number here negative nine point seven can we increase the volume for that did you hear that I don't think the farm is working here so Mia trailer numbers over 87.6 so this right here is this text field this is a HTML text field and then when i type in a number right here eighty 7420 5.5 it requests a small movie to be sent and that movie passes information to this top movie which has isn't is a bigger movie and contains all of the sounds that and also the logic to put the sounds together to speak out this movie and this is something a little bit more so this is used in conjunction with this next thing I'm going to show you okay that's correct this right here is oops it's not coming okay good so this right here is data coming from my lab and UC Berkeley and it's being passed into the movie instead of another dumb I just showed you the movie was being passed into a little frame a little but you can make that invisible frame but I let you see a little blip of the QuickTime loading in this one data is being passed directly into the movie into a movie file instead not movie file into a movie track and the server just keeps on passing data into that movie track in that movie that data gets sent off to a local sprite track which calculates the heights of bars and it puts those bars up on this graph and in this way I can monitor an experiment from anywhere in the world and in fact I can also turn off the co2 in my experiment and you can watch the change of that instead of plotting temperature i can change plot pulse rate i can change the humidity and the stroke and this is all movie this is all like this a QuickTime movie and it can run anywhere a QuickTime movie can run next thing I'd like to show you is all these things are little applications and a lot of you maybe aren't interested in having quicktime work as an application but you are interested in having quicktime show movies which is what it originally intended to do and why would you want to have all these applications features in just a normal movie well when I will show you here is something I develop iphone and this movie is an intelligent movie you haven't purchased this movie yet and it so it knows that and soon as you launch this movie it says do you want to watch the preview which allows you to watch or would you like to purchase the movie so let's purchase the movie it goes up to a web page and I hope this was a lil bit quicker this time maybe not so right it's usually faster so right now is launching a URL on my on my site and it's going to give you a web a form to enter in your credit card information I'm going to take up my wallet real quick and you can purchase this movie and in fact the other movie doesn't even have to be open in order for me to purchase the movie imagine my name a quick tour good number I my customer okay purchase that and now my movie has been purchased and now this machine will be unable to watch this movie instead of saying purchase movie it says watch movie and now you can watch the whole movie in fast-forward rewind change the volume and things like that so this is a pudding pudding application into just gives you a DVD style movie and it talks with the server says is this compute is computer and able to watch this movie and therefore we've implemented pay-per-view downloads all within the QuickTime applications all within the QuickTime framework we don't have to invent any new media type for any new methods like Microsoft is doing all what quicktime already has the ability to do all that it's got all this wire sprites in the ability to talk to service and you can build custom novel applications that other people have built before here is something where a movie actually returned something to the user so that one the server was talking to the movie was talking to the server to see if this computer is allowed to watch a certain movie and what I'm going to show you right now is the server is going to return a file to the user based on what the user does so here this is a simple drawing program let me just make a little interesting drawing how's that I'm not an artist there you go and then when I click on this PDF button it should load Oh stay file okay and I just saved the file to my disk and that was the drawing that I just have to Oh lots of code lawyer okay so what up and there's my going so now now a drawing is yes sure there's a lot of things that can make drawings and well not that many that can write PDF files on the ship's distiller on it but there are lots of drawing applications why would you want to have quicktime do your drawing well you don't have to do a drawing you could design like a t-shirt and you the person says oh I want my logo here and I want this here or greeting cook they want to have like business cards made up and they said I want my logo here and want my name here and they can do though that within a quick time within a QuickTime movie and say click this I want that mate and send you back a PDF say is this what you want you say yes and they produce it in sent it to you so there's a lot of e-commerce applications for this basically a movie can send something to the server and the server can send you back a file and that opens a lot of doors but why would you want quick time to do that well QuickTime has a unique property that it is I'm going to make a new word that I coined last year is probable it's the most possible thing I've ever seen you can take a movie you could stick it into a PDF file you can stick it into a word processing file you can stick into a web page you can stick in all these places you can't fix java application inside of a pto maybe you can but not at a standard Acrobat Reader you can't stick Java in the PDF file you definitely can't stick Rio and windows media player you can't stick many applications but all right so here is an example of using it my drawing program in a real world situation let's see where is in this application I have you seen with using at UC Berkeley I'm a neuro scientist and I study how the brain works and one of the things that we need to do is we need to know where for medical applications we know whether we're a lesion is inside of a image of a brain and there are people that are experts at finding lesions in slices of brain and so those those experts aren't necessarily next door sometimes they're across the country or across the world and you'd like to send up a slice of this cortex and say we're on this cortex is a leisure wear where's the start and where does it end and it's all these people are often busy and so if you tell them will you please launch photoshop and draw on there where you think the lease and starts and save this Photoshop file and send it back to me you take weeks to do that but here i just sent this person a email and here they can draw us as that Leeson started there ended there this right here is the border between area 17 and 18 that's what you wanted to know if I made a mistake you can undo it and say oh it was really here and then submit it and when I push that submit button it sends the information to my databases and send anything back since of information to my database and automatically update updates the database and it takes only a couple of seconds and it's pushed technology right inside the person's email client that's why you might want to use quicktime to do application okay where are we now looks like I'm going fast that's okay so I'm going to get ok another place you complete a QuickTime movie isn't a PF file here's a PDF PDF file for my friend Joe no walk who will be entering the demo in a little bit and he said ok I got your low lego robot ready everyone knows what these Lego Mindstorm robots are right who has how many people here have one of these ok cool you'll like the demo coming up so he says I got it and when you're giving this talk just page me and to page me just click on this button and here's a little quick time type of the thing so Robo time and I just hit enter and it says a page set and so this is a simple little application that talks to the server and basically it's using a little email module that I have that I use with quicktime so you can actually make a whole quick time I mean email client and quicktime if you want but here this is just a little pager you don't have that person can send you a like a technician can send you little technical specs on something and said if these aren't right just page me and tell me what or like just page me and tell me what your phone numbers or something like this and put that into a PDF file put them into a word processing file or into the email client they don't have to give you their pager number and also I can have it so that it only works one so you have one time to page me and that's it and then leave me alone so so you're saying okay you can have a movie talk to a server and you can have a server talk back to a movie can't we have interactive games in quick time to people on different QuickTime movies both talking to the service servers talking and telling you what each other are doing and sure you can't do that so here is the this is not a game but this is a little chat program that I made completely done a quick time how many people are on this jet nine people Josie there's our TX Joe he's sitting on there waiting for me to come see what there it is bruiser didn't have much to say so how is this useful well again instead of putting a PDF putting a pager inside of a PDF document you can stick a chat these guys are taking over how do we know they don't believe me what of course yeah okay the audience says hi did you say hi say hi so um you can put a chat client in a PF thing or you can put a chat client within a movie with in a streaming movie a live streaming movie you can have MTV could have this new band replacing in sync and they're going to have this new live video and you can talk to them while they're performing the video or whatever I get you little perform videos but so this is a pretty powerful thing and it shows that you can have interactive movies that are more than just a one user experience you can have multiple people watching the same movie and interacting they're using color and one cool one cool so I'm going to good bye guys so one cool thing about this is that you can you can have custom interfaces that are pull it pulled in on the fly so when I click that info button it pulled a new movie off of the server and stuck it into that frame and this movie can be anytime any movie that it could be actually a whole nother check client right inside this little frame right here this is a movie in itself I'd like to thank Brad Smith for helping me make these nice aqua graphics and so when I go back to the chat everything should be still there alright so now we're going on to the now the lego robot demo alright so here it kind of so I'm going to close this I'm going to exit oh I just love quick time thanks Joe okay so I log off now I'm okay don't make this any way so what I'm about to show you here is going to blow your mind if you guys like Legos like I do so what I've made right here is a well I don't have the whole interface here for you but what we've made is a complete Lego programming interface all within click time so many of you know that when Lego decided to come out with their fancy mindstorms robot they said Oh we'll just make it pc only and they came out with a windows version of this lego thing and on that CD didn't have any mac version which made me mad this as one of the first people to get one and I don't have a windows machine I said I can't program my Legos so I build a QuickTime Lego programmer and it has all the same function and it's little buggy so I didn't put the whole thing but I have pre to pre-built movies very simple I didn't want anything to go wrong so I just have go forward on turn the motor on wait for little while I'll turn off there's the first movie let's try okay let's see program one here it goes loading run come on come on Oh out they're gone okay it took a couple seconds maybe I'll build kit what's he doing there okay he says now he's dead because now Mac people can play with the robots remotely have to tell you that this this streaming server is coming from Chicago my friend Joe is in Chicago and he helped me set this up and this robot is also in Chicago obviously so let's run that program again it was a little bit faster so this shows that the program download and it should get executed oh there's who's that Janet Reno and now let's go the other reverse direction program food says turn the motor to reverse on weight and turn off go back again to Bill Gates okay so basically 10 minutes the basic this is what I had to show you and I hope that oak opens your minds a little bit about what quicktime can do and the possibilities and how you might want to use quicktime it quick time in ways that you haven't thought of before and it can talk to a sliver and it does it in a most awesome way Thank You MA be great we didn't let you down did we the guy's incredible and on behalf of at least four quicktime engineers myself included we ran out and bought the Lego Mindstorms when it first came out and we also have the box of sitting around our office was going okay now what so that's Thank You Matthew so to recap a lot of what we discussed today you can find in Steve Ghoulies book quick time for the web I'm usually not a cell phone pushing this but this is like a great book I have a torn-up copy in my office that was before I went to press and all kind of pages all over it's quick time for the web and this is just out yeah and it comes with CD and examples in the bag it's just wonderful highly recommended so a few more quicktime sessions coming up later this afternoon and tomorrow morning there's actually another one tomorrow afternoon and web objects like i said every day all day in hall j you know drop by pick up your copy oh so in case you have questions about this you I want to know more i'm all excited i want to control my robot across the country you know and maybe make a submersible one contact jeff lowe with the impressive title of quicktime technology manager he will answer all your questions and direct you in the right path and thank you for coming [Applause] [Music]
