MediaPlayer Class

Definition

Provides access to media playback functionality such as play, pause, fast-forward, rewind, and volume.

public ref class MediaPlayer sealed
public ref class MediaPlayer sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class MediaPlayer final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(196608, "Windows.Foundation.UniversalApiContract")]
class MediaPlayer final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class MediaPlayer
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(196608, "Windows.Foundation.UniversalApiContract")]
public sealed class MediaPlayer : System.IDisposable
function MediaPlayer()
Public NotInheritable Class MediaPlayer
Public NotInheritable Class MediaPlayer
Implements IDisposable
Inheritance
Object Platform::Object IInspectable MediaPlayer
Attributes
Implements

Windows requirements

Device family
Windows 10 (introduced in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced in v1.0)

Remarks

The Media playback section of the documentation contains how-to articles that provide detailed guidance for adding media playback features to your app. The following table lists some of the available articles.

Topic Description
Play audio and video with MediaPlayer Shows you how to take advantage of the new features and improvements to the media playback system for UWP apps.
Media items, playlists, and tracks Shows you how to use the MediaSource class, which provides a common way to reference and play back media from different sources such as local or remote files and exposes a common model for accessing media data, regardless of the underlying media format.
Integrate with the System Media Transport Controls Shows you how to integrate your app with the System Media Transport Controls (SMTC).
System-supported timed metadata cues Describes how to take advantage of several formats of timed metadata that may be embedded in media files or streams.
Create, schedule, and manage media breaks Shows you how to create, schedule, and manage media breaks to your media playback app.
Play media in the background Shows you how to configure your app so that media continues to play when your app moves from the foreground to the background.
Adaptive Streaming Describes how to add playback of adaptive streaming multimedia content to a Universal Windows Platform (UWP) apps.
Media casting Shows you how to cast media to remote devices from a Universal Windows app.
PlayReady DRM Describes how to add PlayReady protected media content to your Universal Windows Platform (UWP) app.

Media playback SDK samples

The following SDK samples demonstrate the media playback features available to UWP apps on Windows 10. Use these samples to see the media playback APIs used in context or as a starting point for your own app.

Version history

Windows version SDK version Value added
1511 10586 AddAudioEffect
1511 10586 RemoveAllEffects
1607 14393 AddVideoEffect
1607 14393 AudioBalance
1607 14393 AudioDevice
1607 14393 BreakManager
1607 14393 CommandManager
1607 14393 GetAsCastingSource
1607 14393 GetSurface
1607 14393 IsMutedChanged
1607 14393 PlaybackSession
1607 14393 RealTimePlayback
1607 14393 SetSurfaceSize
1607 14393 SourceChanged
1607 14393 StepBackwardOneFrame
1607 14393 StepForwardOneFrame
1607 14393 StereoscopicVideoRenderMode
1607 14393 TimelineController
1607 14393 TimelineControllerPositionOffset
1703 15063 CopyFrameToStereoscopicVideoSurfaces
1703 15063 CopyFrameToVideoSurface(IDirect3DSurface)
1703 15063 CopyFrameToVideoSurface(IDirect3DSurface,Rect)
1703 15063 IsVideoFrameServerEnabled
1703 15063 VideoFrameAvailable
1709 16299 RenderSubtitlesToSurface(IDirect3DSurface)
1709 16299 RenderSubtitlesToSurface(IDirect3DSurface,Rect)
1709 16299 SubtitleFrameChanged
1803 17134 AudioStateMonitor

Constructors

MediaPlayer()

Initializes a new instance of the MediaPlayer object.

Properties

AudioBalance

Gets or sets a ratio of volume across stereo speakers.

AudioCategory

Gets or sets the type of audio that is currently being played.

AudioDevice

Gets or sets the DeviceInformation object representing audio device used by the MediaPlayer to render audio.

AudioDeviceType

Gets or sets a value that describes the primary usage of the device that is being used to play back audio.

AudioStateMonitor

Gets an AudioStateMonitor object that allows a UWP app to determine if any of the app's audio streams are currently being muted or having their volume reduced by the system.

AutoPlay

Gets or sets a Boolean value indicating if playback automatically starts after the media is loaded.

BreakManager

Gets the MediaBreakManager associated with the MediaPlayer, which provides information about and control over media breaks for the player.

BufferingProgress

Gets the amount of buffering that is completed for the media content, expressed as a percentage.

Note

MediaPlayer.BufferingProgress may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.BufferingProgress property.

CanPause

Gets a Boolean value indicating if the media can be paused.

Note

MediaPlayer.CanPause may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.CanPause property.

CanSeek

Gets a Boolean value indicating if the media supports seeking to a specific position.

Note

MediaPlayer.CanSeek may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.CanSeek property.

CommandManager

Gets the MediaPlaybackCommandManager associated with the MediaPlayer, which specifies the behavior of and receives events from the System Media Transport Controls.

CurrentState

Gets the current state of media playback.

Note

MediaPlayer.CurrentState may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.PlaybackState property.

IsLoopingEnabled

Gets or sets a Boolean value indicating if the media will playback in a repeating loop.

IsMuted

Gets or sets a Boolean value indicating if the audio is muted.

IsProtected

Gets a Boolean value indicating if the content is protected by a digital rights management system.

Note

MediaPlayer.IsProtected may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the IsProtected property.

IsVideoFrameServerEnabled

Gets a value indicating whether video frame server mode is enabled for the MediaPlayer instance.

NaturalDuration

Get the actual duration of the media without applying the PlaybackRate.

Note

MediaPlayer.NaturalDuration may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.NaturalDuration property.

PlaybackMediaMarkers

Gets the collection of timeline markers for the media.

Note

MediaPlayer.PlaybackMediaMarkers may be altered or unavailable after Windows 10, version 1607. Instead, use MediaPlaybackItem.TimedMetadataTracks to manage data or text cues. For more information, see Media playback with MediaSource.

PlaybackRate

Gets or sets the playback rate, expressed as a ratio.

Note

MediaPlayer.PlaybackRate may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.PlaybackRate property.

PlaybackSession

Gets the MediaPlaybackSession associated with the MediaPlayer, which provides information about the state of the current playback session and provides events for responding to changes in playback session state.

Position

Gets or sets the playback position within the media.

Note

MediaPlayer.Position may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.Position property.

ProtectionManager

Gets or sets the content protection manager for the media.

RealTimePlayback

Gets or sets a value that configures the MediaPlayer for real-time scenarios such as live streaming video.

Source

Sets the playback source of the media player.

StereoscopicVideoRenderMode

Gets or sets a value indicating the current stereoscopic render mode.

SystemMediaTransportControls

Gets an instance of the SystemMediaTransportControls class to enable user control of playback of the MediaPlayer and to allow the app to show information about the currently playing content in the system UI.

TimelineController

Gets or sets the MediaTimelineController associated with the MediaPlayer. Use this property to manipulate multiple MediaPlayer instances with a single timeline control.

TimelineControllerPositionOffset

Gets or sets the offset applied to the position of the MediaTimelineController associated with the MediaPlayer.

Volume

Get or sets the audio volume for media playback.

Methods

AddAudioEffect(String, Boolean, IPropertySet)

Adds an audio effect to the playback stream of the MediaPlayer.

AddVideoEffect(String, Boolean, IPropertySet)

Applies a video effect to media playback.

Close()

Closes the MediaPlayer and disposes of associated resources.

CopyFrameToStereoscopicVideoSurfaces(IDirect3DSurface, IDirect3DSurface)

Copies the video frame currently displayed by the MediaPlayer to the two provided IDirect3DSurface objects which represent the left eye and right eye content of a stereoscopic video frame.

CopyFrameToVideoSurface(IDirect3DSurface)

Copies the current video frame from the MediaPlayer to the provided IDirect3DSurface.

CopyFrameToVideoSurface(IDirect3DSurface, Rect)

Copies the current video frame from the MediaPlayer to the specified target rectangle within the provided IDirect3DSurface.

Dispose()

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

GetAsCastingSource()

Gets a CastingSource representing the MediaPlayer, which allows its media to be cast to other devices.

GetSurface(Compositor)

Gets a MediaPlayerSurface object for the MediaPlayer, which allows you to render the player's contents using a Compositor without relying on the XAML framework.

Pause()

Pauses media playback.

Play()

Starts media playback.

RemoveAllEffects()

Removes all effects from the playback stream of the MediaPlayer.

RenderSubtitlesToSurface(IDirect3DSurface)

Requests for the system to render the current subtitle text to the provided IDirect3DSurface.

RenderSubtitlesToSurface(IDirect3DSurface, Rect)

Requests for the system to render the current subtitle text to the specified target rectangle within the provided IDirect3DSurface.

SetFileSource(IStorageFile)

Set the media source to a file.

Note

MediaPlayer.SetFileSource may be altered or unavailable after Windows 10. Use MediaPlayer.Source instead.

SetMediaSource(IMediaSource)

Sets the media source for playback.

Note

MediaPlayer.SetMediaSource may be altered or unavailable after Windows 10. Use MediaPlayer.Source instead.

SetStreamSource(IRandomAccessStream)

Sets the media source to a stream.

Note

MediaPlayer.SetMediaSource may be altered or unavailable after Windows 10. Use MediaPlayer.Source instead.

SetSurfaceSize(Size)

Sets the size of the composition surface returned by GetSurface.

SetUriSource(Uri)

Sets the path to the media.

Note

MediaPlayer.SetUriSource may be altered or unavailable after Windows 10. Use MediaPlayer.Source instead.

StepBackwardOneFrame()

Causes the playback position of the MediaPlayer to move backward by .042 seconds, which corresponds to one frame at 24 fps, regardless of the actual frame rate of the content being played.

StepForwardOneFrame()

Causes the MediaPlayer to move forward in the current media by one frame.

Events

BufferingEnded

Occurs when buffering has finished.

Note

MediaPlayer.BufferingEnded may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.BufferingEnded event.

BufferingStarted

Occurs when buffering has started.

Note

MediaPlayer.BufferingStarted may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.BufferingStarted event.

CurrentStateChanged

Occurs when the state of the media player has changed.

Note

MediaPlayer.CurrentStateChanged may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.PlaybackStateChanged event.

IsMutedChanged

Occurs when the current muted status of the MediaPlayer changes.

MediaEnded

Occurs when the media has finished playback.

MediaFailed

Occurs when an error is encountered.

MediaOpened

Occurs when the media is opened.

MediaPlayerRateChanged

Occurs when the media playback rate has changed.

Note

MediaPlayer.MediaPlayerRateChanged may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.PlaybackRateChanged event.

PlaybackMediaMarkerReached

Occurs when a media marker has been reached during playback.

Note

MediaPlayer.PlaybackMediaMarkerReached may be altered or unavailable after Windows 10, version 1607. Instead, use MediaPlaybackItem.TimedMetadataTracks to manage data or text cues. For more information, see Media playback with MediaSource.

SeekCompleted

Occurs when a seek operation has finished.

Note

MediaPlayer.SeekCompleted may be altered or unavailable after Windows 10, version 1607. Instead, use the MediaPlayer.PlaybackSession property to get a MediaPlaybackSession object and then use the MediaPlaybackSession.SeekCompleted event.

SourceChanged

Occurs when the media source for the MediaPlayer changes.

SubtitleFrameChanged

Occurs when the current subtitle content has changed while the MediaPlayer is in frame server mode.

VideoFrameAvailable

Occurs when IsVideoFrameServerEnabled is set to true and a new video frame is available for processing.

VolumeChanged

Occurs when the volume of the audio has changed.

Applies to