Media Player Class
Definition
Provides access to media playback functionality such as play, pause, fast-forward, rewind, and volume.
Windows 10 requirements
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
Initializes a new instance of the MediaPlayer object.
Properties
Gets or sets a ratio of volume across stereo speakers.
Gets or sets the type of audio that is currently being played.
Gets or sets the DeviceInformation object representing audio device used by the MediaPlayer to render audio.
Gets or sets a value that describes the primary usage of the device that is being used to play back audio.
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.
Gets or sets a Boolean value indicating if playback automatically starts after the media is loaded.
Gets the MediaBreakManager associated with the MediaPlayer, which provides information about and control over media breaks for the player.
Gets the amount of buffering that is completed for the media content, expressed as a percentage.
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.
Gets a Boolean value indicating if the media can be paused.
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.
Gets a Boolean value indicating if the media supports seeking to a specific position.
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.
Gets the MediaPlaybackCommandManager associated with the MediaPlayer, which specifies the behavior of and receives events from the System Media Transport Controls.
Gets the current state of media playback.
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.
Gets or sets a Boolean value indicating if the media will playback in a repeating loop.
Gets or sets a Boolean value indicating if the audio is muted.
Gets a Boolean value indicating if the content is protected by a digital rights management system.
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.
Gets a value indicating whether video frame server mode is enabled for the MediaPlayer instance.
Get the actual duration of the media without applying the PlaybackRate.
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.
Gets the collection of timeline markers for the media.
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.
Gets or sets the playback rate, expressed as a ratio.
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.
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.
Gets or sets the playback position within the media.
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.
Gets or sets the content protection manager for the media.
Gets or sets a value that configures the MediaPlayer for real-time scenarios such as live streaming video.
Sets the playback source of the media player.
Gets or sets a value indicating the current stereoscopic render mode.
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.
Gets or sets the MediaTimelineController associated with the MediaPlayer. Use this property to manipulate multiple MediaPlayer instances with a single timeline control.
Gets or sets the offset applied to the position of the MediaTimelineController associated with the MediaPlayer.
Get or sets the audio volume for media playback.
Methods
Adds an audio effect to the playback stream of the MediaPlayer.
Applies a video effect to media playback.
Closes the MediaPlayer and disposes of associated resources.
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.
Copies the current video frame from the MediaPlayer to the provided IDirect3DSurface.
Copies the current video frame from the MediaPlayer to the specified target rectangle within the provided IDirect3DSurface.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Gets a CastingSource representing the MediaPlayer, which allows it’s media to be cast to other devices.
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.
Pauses media playback.
Starts media playback.
Removes all effects from the playback stream of the MediaPlayer.
Requests for the system to render the current subtitle text to the provided IDirect3DSurface.
Requests for the system to render the current subtitle text to the specified target rectangle within the provided IDirect3DSurface.
Set the media source to a file.
MediaPlayer.SetFileSource may be altered or unavailable after WindowsВ 10. Use MediaPlayer.Source instead.
Sets the media source for playback.
MediaPlayer.SetMediaSource may be altered or unavailable after WindowsВ 10. Use MediaPlayer.Source instead.
Sets the media source to a stream.
MediaPlayer.SetMediaSource may be altered or unavailable after WindowsВ 10. Use MediaPlayer.Source instead.
Sets the size of the composition surface returned by GetSurface.
Sets the path to the media.
MediaPlayer.SetUriSource may be altered or unavailable after WindowsВ 10. Use MediaPlayer.Source instead.
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.
Causes the MediaPlayer to move forward in the current media by one frame.
Events
Occurs when buffering has finished.
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.
Occurs when buffering has started.
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.
Occurs when the state of the media player has changed.
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.
Occurs when the current muted status of the MediaPlayer changes.
Occurs when the media has finished playback.
Occurs when an error is encountered.
Occurs when the media is opened.
Occurs when the media playback rate has changed.
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.
Occurs when a media marker has been reached during playback.
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.
Occurs when a seek operation has finished.
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.
Occurs when the media source for the MediaPlayer changes.
Occurs when the current subtitle content has changed while the MediaPlayer is in frame server mode.
Occurs when IsVideoFrameServerEnabled is set to true and a new video frame is available for processing.
Occurs when the volume of the audio has changed.
Media playback
This section provides information on creating Universal Windows apps that playback audio and video.
Media playback developer features
The following table lists the how-to articles that provide detailed guidance for adding media playback features to your app.
Topic | Description |
---|---|
Play audio and video with MediaPlayer | This article shows you how to take advantage of the new features and improvements to the media playback system for UWP apps. Starting with Windows 10, version 1607,the recommended best practice for playing media is to use the MediaPlayer class instead of MediaElement for media playback. The lightweight XAML control, MediaPlayerElement, has been introduced to allow you render media content in a XAML page. MediaPlayer provides several advantages including automatic integration with the System Media Transport Controls and a simpler, one-process model for background audio. This article also shows you how to render video to a Windows.UI.Composition surface and how to use a MediaTimelineController to synchronize multiple media players. |
Media items, playlists, and tracks | This article 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. The MediaPlaybackItem class extends the functionality of MediaSource, allowing you to manage and select from multiple audio, video, and metadata tracks contained in a media item. MediaPlaybackList allows you to create playback lists from one or more media playback items. |
Integrate with the System Media Transport Controls | This article shows you how to integrate your app with the System Media Transport Controls (SMTC). Starting with Windows 10, version 1607, every instance of MediaPlayer that you create to play media is automatically displayed by the SMTC. This article shows you how to provide the SMTC with metadata about the content you are playing and how to augment or completely override the default behavior of SMTC controls. |
System-supported timed metadata cues | This article 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 | This article shows you how to create, schedule, and manage media breaks to your media playback app. Starting with Windows 10, version 1607, you can use the MediaBreakManager class to quickly and easy add media breaks to any MediaPlaybackItem that you play with a MediaPlayer. Media breaks are typically used to insert audio or video ads into media content. Once you schedule one or more media breaks, the system will automatically play your media content at the specified time during playback. The MediaBreakManager provides events so that your app can react when media breaks start, end, or when they are skipped by the user. You can also access a MediaPlaybackSession for your media breaks to monitor events like download and buffering progress updates. |
Play media in the background | This article shows you how to configure your app so that media continues to play when your app moves from the foreground to the background. This means that even after the user has minimized your app, returned to the home screen, or has navigated away from your app in some other way, your app can continue to play audio. With Windows 10, version 1607, a new single-process model for background media playback has been introduced that is much quicker and easier to implement than the legacy two-process model. This article includes information on handling the new application lifecycle events EnteredBackground and LeavingBackground to manage your app’s memory usage while running in the background. |
Adaptive Streaming | This article describes how to add playback of adaptive streaming multimedia content to a Universal Windows Platform (UWP) apps. This feature currently supports playback of Http Live Streaming (HLS) and Dynamic Streaming over HTTP (DASH) content. |
Media casting | This article shows you how to cast media to remote devices from a Universal Windows app. |
Enable audio playback from remote Bluetooth-connected devices | This article shows you how to use AudioPlaybackConnection to enable Bluetooth-connected remote devices to play back audio on the local machine, enabling scenarios such as configuring a PC to behave like a Bluetooth speaker and allowing users to hear audio from their phone. |
PlayReady DRM | This topic describes how to add PlayReady protected media content to your Universal Windows Platform (UWP) app. |
PlayReady Encrypted Media Extension | This section describes how to modify your PlayReady Web app to support the changes made from the previous Windows 8.1 version to the Windows 10 version. |
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.