Capturing audio/video in Silverlight 4: a surprising fact about CaptureSource - xfgr.com Click here to Skip to main content
 

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

How to avoid performance problems when capturing audio only (or video only)
Sign Up to vote for this article
Add a reason or comment to your vote: x
0
answers
5.0/5
3 votes
419
views

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.
Posted 16 Jun '10 5:53 AM
Kubajzz785
Edited 21 Jun '10 3:41 AM
Revision 2

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

Hint: For improved responsiveness use Internet Explorer 4, Firefox or above. Ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
FAQ FAQ   
Noise Tolerance  Layout  Per page   
  (Refresh) 
-- There are no messages in this forum --

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   


 
Last Updated 26 Mar 2009
Web21 2.3.0027 Advertise Privacy