Skip to main content
.NET Framework Class Library
MediaPlayer Class

Provides media playback for drawings.

Namespace:   System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
Syntax
Public Class MediaPlayer _
	Inherits [%$TOPIC/ms635239_en-us_VS_110_2_0_0_0_0%]
public class MediaPlayer : [%$TOPIC/ms635239_en-us_VS_110_2_0_1_0_0%]
public ref class MediaPlayer : public [%$TOPIC/ms635239_en-us_VS_110_2_0_2_0_0%]
type MediaPlayer =  
    class 
        inherit [%$TOPIC/ms635239_en-us_VS_110_2_0_3_0_0%] 
    end
public class MediaPlayer extends [%$TOPIC/ms635239_en-us_VS_110_2_0_4_0_0%]
<MediaPlayer .../>

The MediaPlayer type exposes the following members.

Constructors
  NameDescription
Public method MediaPlayerInitializes a new instance of the MediaPlayer class.
Top
Properties
  NameDescription
Public property BalanceGets or sets the balance between the left and right speaker volumes.
Public property BufferingProgressGets the percentage of buffering completed for streaming content.
Public property CanFreezeGets a value that indicates whether the object can be made unmodifiable. (Inherited from Freezable.)
Public property CanPauseGets a value indicating whether the media can be paused.
Public property ClockGets or sets the MediaClock associated with the MediaTimeline to be played.
Public property DependencyObjectTypeGets the DependencyObjectType that wraps the CLR type of this instance.  (Inherited from DependencyObject.)
Public property DispatcherGets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.)
Public property DownloadProgressGets the percentage of download progress for content located at a remote server.
Public property HasAnimatedPropertiesGets a value that indicates whether one or more AnimationClock objects is associated with any of this object's dependency properties. (Inherited from Animatable.)
Public property HasAudioGets a value that indicating whether the media has audio output.
Public property HasVideoGets a value that indicates whether the media has video output.
Public property IsBufferingGets a value that indicates whether the media is buffering.
Public property IsFrozenGets a value that indicates whether the object is currently modifiable. (Inherited from Freezable.)
Public property IsMutedGets a value that indicates whether the media is muted.
Public property IsSealedGets a value that indicates whether this instance is currently sealed (read-only). (Inherited from DependencyObject.)
Public property NaturalDurationGets the natural duration of the media.
Public property NaturalVideoHeightGets the pixel height of the video.
Public property NaturalVideoWidthGets the pixel width of the video.
Public property PositionGets or sets the current position of the media.
Public property ScrubbingEnabledGets or sets a value that indicates whether scrubbing is enabled.
Public property SourceGets the media Uri.
Public property SpeedRatioGets or sets the ratio of speed that media is played at.
Public property VolumeGets or sets the media's volume.
Top
Methods
  NameDescription
Public method ApplyAnimationClock(DependencyProperty, AnimationClock)Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the SnapshotAndReplace handoff behavior is used. (Inherited from Animatable.)
Public method ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)Applies an AnimationClock to the specified DependencyProperty. If the property is already animated, the specified HandoffBehavior is used. (Inherited from Animatable.)
Public method BeginAnimation(DependencyProperty, AnimationTimeline)Applies an animation to the specified DependencyProperty. The animation is started when the next frame is rendered. If the specified property is already animated, the SnapshotAndReplace handoff behavior is used. (Inherited from Animatable.)
Public method BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)Applies an animation to the specified DependencyProperty. The animation is started when the next frame is rendered. If the specified property is already animated, the specified HandoffBehavior is used. (Inherited from Animatable.)
Public method CheckAccessDetermines whether the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.)
Public method ClearValue(DependencyProperty)Clears the local value of a property. The property to be cleared is specified by a DependencyProperty identifier. (Inherited from DependencyObject.)
Public method ClearValue(DependencyPropertyKey)Clears the local value of a read-only property. The property to be cleared is specified by a DependencyPropertyKey. (Inherited from DependencyObject.)
Public method CloneCreates a modifiable clone of this Animatable, making deep copies of this object's values. When copying this object's dependency properties, this method copies resource references and data bindings (but they might no longer resolve) but not animations or their current values. (Inherited from Animatable.)
Protected method CloneCoreMakes this instance a deep copy of the specified MediaPlayer. When copying dependency properties, this method copies resource references and data bindings (but they might no longer resolve) but not animations or their current values. (Overrides FreezableCloneCore(Freezable).)
Public method CloneCurrentValueCreates a modifiable clone (deep copy) of the Freezable using its current values. (Inherited from Freezable.)
Protected method CloneCurrentValueCoreMakes this instance a modifiable deep copy of the specified MediaPlayer using current property values. Resource references, data bindings, and animations are not copied, but their current values are. (Overrides FreezableCloneCurrentValueCore(Freezable).)
Public method CloseCloses the underlying media.
Public method CoerceValueCoerces the value of the specified dependency property. This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject. (Inherited from DependencyObject.)
Protected method CreateInstanceInitializes a new instance of the Freezable class. (Inherited from Freezable.)
Protected method CreateInstanceCoreCreates a new MediaPlayer instance. (Overrides FreezableCreateInstanceCore.)
Public method EqualsDetermines whether a provided DependencyObject is equivalent to the current DependencyObject. (Inherited from DependencyObject.)
Protected method FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method FreezeMakes the current object unmodifiable and sets its IsFrozen property to true. (Inherited from Freezable.)
Protected method FreezeCoreMakes this Animatable object unmodifiable or determines whether it can be made unmodifiable. (Inherited from Animatable.)
Public method GetAnimationBaseValueReturns the non-animated value of the specified DependencyProperty. (Inherited from Animatable.)
Public method GetAsFrozenCreates a frozen copy of the Freezable, using base (non-animated) property values. Because the copy is frozen, any frozen sub-objects are copied by reference. (Inherited from Freezable.)
Protected method GetAsFrozenCoreMakes this instance a clone of the specified MediaPlayer object. (Overrides FreezableGetAsFrozenCore(Freezable).)
Public method GetCurrentValueAsFrozenCreates a frozen copy of the Freezable using current property values. Because the copy is frozen, any frozen sub-objects are copied by reference. (Inherited from Freezable.)
Protected method GetCurrentValueAsFrozenCoreMakes the current instance a frozen clone of the specified Freezable. If the object has animated dependency properties, their current animated values are copied. (Inherited from Freezable.)
Public method GetHashCodeGets a hash code for this DependencyObject. (Inherited from DependencyObject.)
Public method GetLocalValueEnumeratorCreates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject. (Inherited from DependencyObject.)
Public method GetTypeGets the Type of the current instance. (Inherited from Object.)
Public method GetValueReturns the current effective value of a dependency property on this instance of a DependencyObject. (Inherited from DependencyObject.)
Public method InvalidatePropertyRe-evaluates the effective value for the specified dependency property (Inherited from DependencyObject.)
Protected method MemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected method OnChangedCalled when the current Freezable object is modified. (Inherited from Freezable.)
Protected method OnFreezablePropertyChanged(DependencyObject, DependencyObject)Ensures that appropriate context pointers are established for a DependencyObjectType data member that has just been set. (Inherited from Freezable.)
Protected method OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. (Inherited from Freezable.)
Protected method OnPropertyChangedOverrides the DependencyObject implementation of OnPropertyChanged to also invoke any Changed handlers in response to a changing dependency property of type Freezable. (Inherited from Freezable.)
Public method OpenOpens the given Uri for media playback.
Public method PausePauses media playback.
Public method PlayPlays media from the current Position.
Public method ReadLocalValueReturns the local value of a dependency property, if it exists. (Inherited from DependencyObject.)
Protected method ReadPreambleEnsures that the MediaPlayer is being accessed from a valid thread.
Public method SetCurrentValueSets the value of a dependency property without changing its value source. (Inherited from DependencyObject.)
Public method SetValue(DependencyProperty, Object)Sets the local value of a dependency property, specified by its dependency property identifier. (Inherited from DependencyObject.)
Public method SetValue(DependencyPropertyKey, Object)Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property. (Inherited from DependencyObject.)
Protected method ShouldSerializePropertyReturns a value that indicates whether serialization processes should serialize the value for the provided dependency property. (Inherited from DependencyObject.)
Public method StopStops media playback.
Public method ToStringReturns a string that represents the current object. (Inherited from Object.)
Public method VerifyAccessEnforces that the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.)
Protected method WritePostscriptRaises the Changed event for the Freezable and invokes its OnChanged method. Classes that derive from Freezable should call this method at the end of any API that modifies class members that are not stored as dependency properties. (Inherited from Freezable.)
Protected method WritePreambleVerifies that the MediaPlayer is not frozen and that it is being accessed from a valid threading context.
Top
Events
  NameDescription
Public event BufferingEndedOccurs when buffering has finished.
Public event BufferingStartedOccurs when buffering has started.
Public event ChangedOccurs when the Freezable or an object it contains is modified. (Inherited from Freezable.)
Public event MediaEndedOccurs when the media has finished playback.
Public event MediaFailedOccurs when an error is encountered
Public event MediaOpenedOccurs when the media is opened.
Public event ScriptCommandOccurs when a script command has been encountered within the media.
Top
Remarks

Although you can declare an instance of this class in Extensible Application Markup Language (XAML), you cannot load and play its media without using code. To play media in XAML only, use a MediaElement. Also, if you declare an instance in XAML, the only practical use is to fill property element syntax for the Player property.

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.

MediaPlayer can be used in two different modes, depending on what is driving the player: independent mode or clock mode. In independent mode, the MediaPlayer is analogous to an image and the media opened through the Open method drives playback. In Clock mode, the MediaPlayer can be thought of as a target for an animation, and thus it will have corresponding Timeline and Clock entries in the Timing tree which controls playback. For more information on media modes, see the Multimedia Overview.

MediaPlayer is different from a MediaElement in that it is not a control that can be added directly to the user interface (UI) of an application. To display media loaded using MediaPlayer, a VideoDrawing or DrawingContext must be used.

Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.