.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
 
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
david stephan

Home >> Articles >> Silverlight >> Post New Resource Bookmark and Share   

 Subscribe to Articles

Silverlight 4: How to Capture Video from Default Webcam?

Posted By:Kunal Chowdhury       Posted Date: March 05, 2010    Points: 25    Category: Silverlight    URL: http://www.dotnetspark.com  

Silverlight 4 Beta 1 has been released by Microsoft on 18th November 2009. There are lots of goodies came up with the release of the new version. Among them, most of all are requested by the developers & users of Silverlight. In this post I will demonstrate one of the new feature "Accessing Default Webcam using Silverlight 4".
 

Introduction

Silverlight 4 Beta 1 has been released by Microsoft on 18th November 2009. There are lots of goodies came up with the release of the new version. Among them, most of all are requested by the developers & users of Silverlight. In this post I will demonstrate one of the new feature "Accessing Default Webcam using Silverlight 4".


Pre-Requisite

To create a Silverlight 4 application you need "Visual Studio 2010 Beta 2". Download it from the Microsoft site. Then install the "Silverlight Tools 4 for Visual Studio 2010 Beta 2". After successful installation, create a Silverlight 4 Application project.


XAML Steps

Once you done with the project creation, Visual Studio will open the MainPage.xaml for you. Add a Rectangle & three Buttons inside the Grid. The Rectangle will responsible for the Video output from your VideoCaptureDevice & buttons will be responsible for the interaction with the device. After adding the same your XAML will look like this:


   <Grid x:Name="LayoutRoot" Background="White">
<
StackPanel HorizontalAlignment="Center">
<
Rectangle x:Name="rectWebCamView" Width="500" Height="400"/>
<
StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<
Button x:Name="btnCaptureDevice" Content="Capture Device" Margin="5"/>
<
Button x:Name="btnPlayCapture" Content="Start Capture" Margin="5"/>
<
Button x:Name="btnStopCapture" Content="Stop Capture" Margin="5"/>
StackPanel>
StackPanel>
Grid>


Code Steps

Now, go to the code behind file (MainPage.xaml.cs) & create an instance of CaptureSource. Then call TryCaptureDevice() to initiate the Video Capture. This first get the default Video Capture device & assign it to the VideoBrush instance of the rectangle. Remember that, this will ask the user to grant permission to the user device & upon successful only it will start the device.


        private void TryCaptureDevice()
{
// Get the default video capture device
VideoCaptureDevice videoCaptureDevice = CaptureDeviceConfiguration.GetDefaultVideoCaptureDevice();

if (videoCaptureDevice == null)
{
// Default video capture device is not setup
btnPlayCapture.IsEnabled = false;
btnStopCapture.IsEnabled = false;
btnCaptureDevice.IsEnabled = true;

MessageBox.Show("You don't have any default capture device");
}
else
{
btnPlayCapture.IsEnabled = false;
btnStopCapture.IsEnabled = false;

// Set the Capture Source to the VideoBrush of the rectangle
VideoBrush videoBrush = new VideoBrush();
videoBrush.SetSource(captureSource);
rectWebCamView.Fill = videoBrush;

// Check if the Silverlight has already access to the device or grant access from the user
if (CaptureDeviceConfiguration.AllowedDeviceAccess || CaptureDeviceConfiguration.RequestDeviceAccess())
{
btnPlayCapture.IsEnabled = true;
btnStopCapture.IsEnabled = false;
btnCaptureDevice.IsEnabled = false;
}
}
}
Conclusion
This is a sample application to showcase the new Webcam feature in Silverlight 4. This can be modified to save the image snapshot from the webcam.

Download Sample Solution:   Silverlight 4 Webcam Demo


 Subscribe to Articles

     

Further Readings:

Responses

No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend