When importing Flash Video into Flash you are strongly warned against embedding videos that are too long and contain audio. I took this warning seriously and used streaming instead. Big mistake.
Goes without saying that this depends on the nature of your projects. I’ve been streaming Flash video before with great success – controlling the videos with ActionScript 3 is awesome.
But my latest project was different. It was a long presentation mostly timeline based and with little ActionScript. At some point a video of an interview would fly in and play in small portion of the screen. Filesize was not a subject as the SWF would run locally and be displayed in fullscreen on a HD screen.
I was in doubt – should I embed or not? Embedding would be natural as this would run locally. On the other hand the Flash Authoring Tool was stating that this would be a problem.
So I went for streaming. The result? Stuttering and video/audio out of sync. Furthermore it was impossible to sync with the rest of the Flash animations, with also included some voice-over. All in all – a big disaster.
Instead I tried to embed – and even though I had audio in my FLV this seemed to be the formula for success. Running i fullscreen there is still a little bit of A/V out of sync, but it’s bearable.
I discovered one little curious behavior of the Flash Player though. When going fullscreen, the FLV would also go fullscreen when entering and covering the rest of the SWF. Let me give an example. I have a SWF. A FLV enters in a portion of the screen. But in fullscreen the FLV will take over the total screen.
This was caused but the parameter fullScreenTakeOver, which is set to TRUE by default. Nice going Adobe. Not very obvious, but easily fixed once found:
myClip.fullScreenTakeOver = false;
Embed or stream? Depends on the project, but never take Adobe’s word for given.