


One of the latest projects I did was a hi profile job for Saatchi/MovingPictureCompany which was part of a large crosss-media campaign for the NSPCC called How You Feelin?
The project was tied in closely with the TV advert which was a series of clips projected onto buildings of children saying how they felt to a funky beats created by Orbital's Paul Hartnell.
Using a host of videos and sound clips, users piece together a 30 second remix which can then be played back in a fashion which makes it look similar to the original. They can then enter a competition which gives saves their entry and provides them with a url to share if they want to. The winning entry was remade at video quality and aired on MTV.
Php/SQL
I was the only technical guy on the job. As the timeline wasn't too bad I decided not only to do the Flash but to also do the PHP/SQL and to set up the mySql database. I thought it was about time I started branching out and getting some commercial experience in other languages.
The setup was fairly simple, with the Flash app saving to the database using amfphp. The Php also creates a unique url and sends an email to the judges to let them know that a new entry has been entered, with a link to that entry. The user also gets the url once they have saved the entry. Clicking on the unique url would send the user to a seperate page where the Flash would pull in the remix data, again via amfphp, with the users name and the title of the remix displayed. The user could then link back to the original site to make a new remix.
Social Networking
Originally we were then going to allow the users to then share their url directly to Facebook, mySpace, Twitter and Yahoo without leaving Flash, although due to legal reasons related to Childline this functionality was dropped. I did create a service class which did this though so I am hoping a project in the not too near future will ask for similar functionailty as it was pretty tough to make!
I used the new(ish) Adobe networking classes which work in conjunction with Gigya. It was pretty tricky to get it all working though, as each site that I needed to publish too had to be set up on the Gigya site first which in turn created api keys for each of the sites. Any incorrect settings meant that the thing just didn't work! Luckily there are some good instructions on how to do this, although I did struggle occasionaly. Once it was working though it was great. The user would click on the icon of the site they wanted to publish to, a popup would appear asking them to login. Once they clicked the login button the popup would ask for any permissions required to be granted and then close. The item would then be published. The beauty was that once permissions were granted, if the person was already logged into say a Facebook session no popups would be created if they did it again, it just published straight to their wall.
Synching Video and Sound issues
One big issue I had was synching video and audio. Typically there would be around 20 video clips of varying lengths with their own soundtracks, that would play in sync with between none and around 15 audio clips. There was a timeline too, so everything had to look and sound right.
Sounded simple enough. If we have how ever many video clips which last 30 seconds (say 30x1 second clips) and we have say 15x2 second audio clips then everything should be fine. Of course in theory this is ok, but.... I found out along this rocky road that Flash videos would never take the same amount of time to play the same video! That is, creating a little code to trace out the start and end of the video and then set the video to play say 20 times, every time it would take a different amount of time to play! It was never much, around a tenth or two tenths of a second different normally, so generally imperceptably to the human eye, but times this delay by 30 and suddely the video runs over by 3 or more seconds!
After much brain ache and testing, the solution which I used, which worked, was to embed all the videos into swfs and put a silent clip on the timeline under them which I set to synch as Stream. I also embedded all the sounds in swfs, so I could then use frame counting as a way of keeping them in synch rather than timings which never really seem accurate in Flash at the best of times. There was still a problem though as Flash didn't want to drop frames from the video, no matter how loaded the processor got. What I did then, was to count the number of frames passed when the video finished, compared to the number of frames that the video was supposed to have lasted for. I would then skip the first x number of frames of the next clip, thus making everything synch. Admitedly this is not 'the way' to always synch video and could cause problems with very short video clips, typically the video would only overrun by 2 or 3 frames. On a 30 frame clip, skipping the first couple of frames wasn't too bad and ultimately it all synched up.
RobotLegs - MVCS framework
This was my first project using the RobotLegs MVCS framework.
I had been using my own MVC template after trying Cairngorm (boo, hiss) and deciding that frameworks were to bloated, slowed production and actually made sites less maintainable as you had to find someone else who knew the framework to make changes. I went to a talk by Richard Lord at the London Flash User Group, who made a very good presentation on the various new frameworks which gave me the inspiration to go back and take another look at them.
The last point is still valid (on the whole, you still need to find someone who is familiar with the framework to fix and change things), but I have been fully converted and wouldn't start a project now without RobotLegs! It is really lightweight, simple and intuitive. I really liked it and will continue working with it for the foreseable future. Try it out if you haven't already. My own MVC template did start to run into troubles in big projects, but was fine for small/medium projects, although I have dropped it altogether now.
1 comments:
nice post.
------------------------------
james vick
system.in
why company
Post a Comment