Click here to Skip to main content
15,173,741 members
Articles / Multimedia / Audio Video
Posted 16 Jun 2010


6 bookmarked

Capturing audio/video in Silverlight 4: a surprising fact about CaptureSource

Rate me:
Please Sign up or sign in to vote.
4.86/5 (7 votes)
21 Jun 2010CPOL
How to avoid performance problems when capturing audio only (or video only)
I created a simple sound-recording application in SL4, but the performance of my application was really poor. It took a while to me to find the reason of the problem - my webcam was activated each time the application started recording sound. Although the video input was not used by my application, the webcam was active and it decreased the performance of my application (not speaking about the fact that it took several seconds to turn the camera on/off, since my USB webcam is really, really slow).

That was not what I expected, since I only initialized the "AudioCaptureDevice" property of the "CaptureSource" class.

My code looked like this:
var audioDevice = CaptureDeviceConfiguration.GetDefaultAudioCaptureDevice();
_captureSource = new CaptureSource() { AudioCaptureDevice = audioDevice };

I used Red Gate's .NET Reflector to disassemble the CaptureSource constructor and I found something like this:
public CaptureSource() {
    this.VideoCaptureDevice = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();
    this.AudioCaptureDevice = CaptureDeviceConfiguration.GetDefaultAudioCaptureDevice();

Gotcha! Would you expect that? If you only want to capture audio, you must explicitly say that you don't want to capture video (and vice-versa). I changed my code to the following and it works without problems:
// This CaptureSource will record audio only...
_captureSource = new CaptureSource() { VideoCaptureDevice = null }

This is IMO where Silverlight library designers made a huge mistake... Well, we all are only humans. I hope this article helped you to improve the performance of your SL application.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Czech Republic Czech Republic
That's all folks!

Comments and Discussions

GeneralReason for my vote of 5 precise Pin
MQT10-Mar-11 5:43
MemberMQT10-Mar-11 5:43 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.