
Introduction
I find a lot of .NET programmers often don't have much experience or knowledge of Flash and it's capabilities. One of the exciting features of Flash MX was that flash files could very easily load external MP3 files and control their playback. I decided that I would implement some of my Flash skills into making a control to sit in my Visual Studio Toolbox that I could easily drag and drop into any project and not have to worry about implementing the resource files. One of the features I worked on was having the Flash file self-contained within the DLL, and having the control intelligently deposit a copy of the Flash file into the appropriate directory, without the programmer having to worry about implementation or setup. Of course, I also liked the idea of using the property panel of Visual Studio to configure my Flash file in a no fuss, error-free manner. So I strived to make the control adaptable, with properties for console UI, looping, streaming and etcetera.
Using the PseudoMP3 server control
Of course, if your using an IDE like Visual Studio, you don't really need to know how to register or what the property names are. But for the sake of clarity...
The very first thing you need is to register the tag prefix.
<%@ Register TagPrefix="pseudoengine" Namespace="PseudoEngine"
Assembly="PseudoMp3" %>
Then you can create the control like so...
<pseudoengine:PseudoMP3
id="PseudoMP31"
runat="server"
Src="http://www.myDomain.com/myMp3.mp3"
Stream="False"
AutoStart="False"
Loop="False"
Console="True">
</pseudoengine:PseudoMP3>
Properties explanation
Src
: URL location of the MP3 file.
Stream
: Boolean value to indicate whether MP3 file should be streamed. (Otherwise file is preloaded)
AutoStart
: Boolean value to indicate whether file should start when page loads. (Guaranteed to annoy or your money back)
Loop
: Boolean value to indicate whether file should play itself again when it ends.
Console
: Boolean value to indicate whether to display the UI.
What's in the source files
Everything. The Flash source files, Visual Studio solution, a test harness web app and all the burritos you can eat. Well, maybe not the burritos.
Conclusion
Since I've finished this control, I've actually thought of a few extensions I could implement. It wouldn't be that hard to have the control generate an XML document describing a play list and feed it to the Flash file. You could also add properties to control the initial volume, start position of the track and specific number of loops to have the MP3 playback. Even maybe detect the ID3 metadata and feed the Flash file with the correct title of the song to display. Anyway, I'm bored with this project, so on to the next one.