Represents a control that contains audio and/or video.
Assembly: PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
When distributing media with your application, you cannot use a media file as a project resource. In your project file, you must instead set the media type to Content and set CopyToOutputDirectory to PreserveNewest or Always.
can be used in two different modes, depending on what is driving the control: independent mode or clock mode. When used in the independent mode, the is analogous to an image, and Source URI can be directly specified. In clock mode, the can be thought of as a target for an animation, and thus it will have corresponding Timeline and Clock entries in the timing tree. For more information on media modes, see the Multimedia Overview.
For an example of controlling a in independent mode, see How to: Control a MediaElement (Play, Pause, Stop, Volume, and Speed).
Until the MediaOpened event has been raised, the ActualWidth and ActualHeight of the control will report as zero as the media content is used to determine the final size and location of the control. For audio only content, these properties will always be zero.
The following example shows how to control playback of media using a . The example creates a simple media player that allows you to play, pause, stop, and skip back and forth in the media as well as adjust the volume and speed ratio.
The code below creates the UI.
The LoadedBehavior property of must be set to Manual in order to be able to interactively stop, pause, and play the media.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.MediaElementExample" > <StackPanel Background="Black"> <!-- To interactively stop, pause, and play the media, the LoadedBehavior property of the MediaElement must be set to "Manual". --> <MediaElement Source="media\numbers.wmv" Name="myMediaElement" Width="450" Height="250" LoadedBehavior="Manual" UnloadedBehavior="Stop" Stretch="Fill" MediaOpened="Element_MediaOpened" MediaEnded="Element_MediaEnded"/> <StackPanel HorizontalAlignment="Center" Width="450" Orientation="Horizontal"> <!-- Play button. --> <Image Source="images\UI_play.gif" MouseDown="OnMouseDownPlayMedia" Margin="5" /> <!-- Pause button. --> <Image Source="images\UI_pause.gif" MouseDown="OnMouseDownPauseMedia" Margin="5" /> <!-- Stop button. --> <Image Source="images\UI_stop.gif" MouseDown="OnMouseDownStopMedia" Margin="5" /> <!-- Volume slider. This slider allows a Volume range between 0 and 1. --> <TextBlock Foreground="White" VerticalAlignment="Center" Margin="5" >Volume</TextBlock> <Slider Name="volumeSlider" VerticalAlignment="Center" ValueChanged="ChangeMediaVolume" Minimum="0" Maximum="1" Value="0.5" Width="70"/> <!-- Volume slider. This slider allows a Volume range between 0 and 10. --> <TextBlock Foreground="White" Margin="5" VerticalAlignment="Center">Speed</TextBlock> <Slider Name="speedRatioSlider" VerticalAlignment="Center" ValueChanged="ChangeMediaSpeedRatio" Value="1" Width="70" /> <!-- Seek to slider. Ths slider allows you to jump to different parts of the media playback. --> <TextBlock Foreground="White" Margin="5" VerticalAlignment="Center">Seek To</TextBlock> <Slider Name="timelineSlider" Margin="5" ValueChanged="SeekToMediaPosition" Width="70"/> </StackPanel> </StackPanel> </Page>
The code below implements the functionality of the sample UI controls. The Play, Pause, and Stop methods are used to respectively play, pause and stop the media. Changing the Position property of the allows you to skip around in the media. Finally, the Volume and SpeedRatio properties are used to adjust the volume and playback speed of the media.
|How to: Trigger Media Playback with a User Event||This example shows how to synchronize media playback with an event.|
|How to: Repeat Media Playback||This example shows how to playback media indefinitely, that is, to set media so that it plays in an infinite loop.|
|How to: Play Media with Animations||This example shows how to play media and animations at the same time by using the MediaTimeline and DoubleAnimationUsingKeyFrames classes in the same Storyboard.|
|How to: Control a MediaElement by Using a Storyboard||This example shows how to control a by using a MediaTimeline in a Storyboard.|
|How to: Use Transforms on a MediaElement||This example shows how to use a RotateTransform on a .|
|How to: Paint an Area with a Video||This example shows how to paint an area with media. One way to paint an area with media is to use a together with a VisualBrush. Use the to load and play the media, and then use it to set the Visual property of the VisualBrush. You can then use the VisualBrush to paint an area with the loaded media.|
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.