Resource Page DescriptionTwo Silverlight class libraries and an example Silverlight Application to jump start development with and learning about Silverlight's MediaStreamSource.
Why ?This project grew out of 3 desires:
- Provide a MediaStreamSource sample that is useful for educating developers on development with Silverlight's MediaStreamSource
- Provide helper classes which make it easier to use MediaStreamSource for certain scenarios (Mp3 for now)
- Prime the Silverlight development community with MediaStreamSource code to see what creative things can be built
What is in this project ?This project contains 4 things.
- A Silverlight class library, MediaParsers, which contains helper classes for working with Mp3 files, including tools to help find the right point in an Mp3 file to begin playback from and Managed implementations of fundamental media structures.
- A Silverlight Test Project built for nunit, MediaParsersTests, which provides core code coverage for the MediaParsers library.
- A Sliverlight class library, Mp3MediaStreamSource, which has arguably the simplest logic imaginable for using Mp3 file streams with a MediaStreamSource.
- A Sliverlight Application demo, Mp3MediaStreamSourceDemo and Mp3MediaStreamSourceDemoWeb, which shows the simplest interaction between a MediaElement and a MediaStreamSource.
What is a MediaStreamSource ?The MediaStreamSource is a piece of the Silverlight runtime that removes a the influence of a media file's container, giving developers direct access to APIs for manipulating encoded elementary audio and video streams. Why would anyone want to remove the container ?For one thing, having access to elementary streams means that developers can now implement scenarios that other solutions haven't necessarily provided thus far. One example of this is adaptive streaming or multi-bitrate support as was seen during the 2008 Olympics. For another reason, having access to elementary streams allows developers to implement scenarios that the Silverlight runtime hasn't had a chance to implement yet or that the runtime might not be able to implement in the same timeframe that a developer wants it. Examples of this could be, RTSP:T protocol support, SHOUTcast protocol support, seamless audio looping, ID3 v1 and ID3 v2 metadata support, and many other scenarios. Tools used by this projectVisual Studio 2008 ProfessionalNunitSilverlight Nunit Project TemplateFxCopStyleCop Who are you?Larry Olson Blog
|