SIGN UP MEMBER LOGIN:    
ARTICLE

Media Player in WPF

Posted by Mahesh Chand Articles | WPF with C# August 04, 2008
This tutorial shows you how to play and control media files in WPF and XAML using WPF Media controls.
Reader Level:
Download Files:
 

WPF does not have a built-in media controls but it provides a wrapper around current Windows Media Player 10 ActiveX (OCX) control. A computer where this functionality will be used must have Media Player 10 or later versions installed.

 

WPF has two classes to work with audio, video and video with audio - MediaElement and MediaPlayer.  The MediaElement is a part of XAML UIElement and is supported by both XAML and WPF code behind but MediaPlayer is available in WPF code behind only.  

 

The project attached with this article let you browse a media file and plays in the TV below.

 

 

The following XAML code snippet creates a MediaElement and sets the default media file.

<MediaElement Margin="10,10,10,0 " Source="C:\Projects\WPF\MediaSamples\MediaSamples\Media\Lake.wmv"

                              Name="McMediaElement"

                 Width="450" Height="250" LoadedBehavior="Manual" UnloadedBehavior="Stop" Stretch="Fill"

                 MediaOpened="Element_MediaOpened" MediaEnded="Element_MediaEnded"/>

 

The Browse button click event handler code listed below uses OpenFileDialog and let you browse media files and sets MediaElement.Source to new URI that takes media file name as a parameter.

private void BrowseButtonClick(object sender, RoutedEventArgs e)

{

    OpenFileDialog dlg = new OpenFileDialog();

    dlg.InitialDirectory = "c:\\";

    dlg.Filter = "Media files (*.wmv)|*.wmv|All Files (*.*)|*.*";

    dlg.RestoreDirectory = true;

 

    if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)          

    {

        string selectedFileName = dlg.FileName;

        FileNameLabel.Content  = selectedFileName;

        McMediaElement.Source = new Uri(selectedFileName);

        McMediaElement.Play();            

    }

}

MediaElement has methods - Play, Stop, and Pause, which are used to play, stop, and pause the current media. The code for Play, Pause, and Stop buttons looks like following:

// Play the media.

void OnMouseDownPlayMedia(object sender, MouseButtonEventArgs args)

{

    McMediaElement.Play();

}

 

// Pause the media.

void OnMouseDownPauseMedia(object sender, MouseButtonEventArgs args)

{

    McMediaElement.Pause();

 

}

 

// Stop the media.

void OnMouseDownStopMedia(object sender, MouseButtonEventArgs args)

{

    McMediaElement.Stop();

 

}

MediaElement has Volume and SpeedRatio properties to set volume and the speed of the media.  

// Change the volume of the media.

private void ChangeMediaVolume(object sender, RoutedPropertyChangedEventArgs<double> args)

{

    McMediaElement.Volume = (double)volumeSlider.Value;

}

 

// Change the speed of the media.

private void ChangeMediaSpeedRatio(object sender, RoutedPropertyChangedEventArgs<double> args)

{

    McMediaElement.SpeedRatio = (double)speedRatioSlider.Value;

}

 

Summary

In this article and attached source code, I discussed how to create and use a MediaElement in WPF to play media files.    

Login to add your contents and source code to this article
share this article :
post comment
 

thanks

Posted by hoang nguyen Aug 11, 2011

Thank you very much

Posted by gabng sdhfj May 06, 2011

Materials are very usefull, and according to developer's need. Post a Step by Step process to create media player using wpf in c#.net. Tanks a lot........

Posted by Gunjan Tiwari Mar 09, 2011

i want to play audio file of any format.
please tell me what to do.

thanks

Posted by yogi m Aug 05, 2010

good day,

first of all, i would like to thank you for this feature. Its very useful but somehow i cant seem to make the video auto play for a reason even though i've check the directory of my files. please do advise~

Posted by lol Mar 02, 2010
6 Months Free & No Setup Fees ASP.NET Hosting!
Become a Sponsor
PREMIUM SPONSORS
  • Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
    Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Team Foundation Server Hosting
Become a Sponsor