Would it be possible to build a VU meter for SmoothStreaming audio?

Nov 26, 2012 at 11:26 AM


I am a newbie to SMF, but after playing around with it for some days, I haven't figured out wether it would be possible or not to build a VU meter for audio in the SmoothStreaming Player. Ideally, I would love to have access to current audio samples, so I can compute and display the current VU values.

In other words, what I want is to show a VU meter when playing SmoothStreaming content. Would it be possible to do so with current SMF implementation? I'm afraid the only way to achieve this is to build a whole "audio smooth streaming player" and download the stream(s) myself. 

Could you give me any suggestion / hint of what path to follow?



Nov 27, 2012 at 12:28 AM

Are you trying to show the current volume and possibly let the user change it? If so, you can use the VolumeLevel property which returns values from 0.0 - 1.0.

If you're trying to show the encoded volume level of each sample, as far as I know, you'd have to dig quite a bit deeper and parse the chunks in your app. But, there is a way to do this without re-implementing smooth streaming by creating an ISmoothStreamingCachePlugin. This gives your code an opportunity to preview each chunk before it is used -- but you'd still have to parse the chunk bytes to extract this info which is not trivial.


Nov 27, 2012 at 8:31 AM

Hi Tim,

Thanks for your answer. What I'm trying to show is the volume level of each sound sample being currently played. For instance, here you have an animated gif which illustrates the "VU meter" concept: http://www.maturana69.org/sounds/images/Vumeter-special_gif.gif.

I didn't know about the ISmoothStreamingCachePlugin, and it looks promising! So I can easily have acces to the raw data stream being downloaded by the player.

The only missing part would be then to decode the AAC audio samples in Silverlight. Any clues?

Thanks again,