MediaPlayer 类

定义

提供对媒体播放功能(如播放、暂停、快速转发、回退和音量)的访问。

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
继承
Object IInspectable MediaPlayer
属性
实现

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

注解

文档的 媒体播放 部分包含有关如何向应用添加媒体播放功能的详细指导的操作方法文章。 下表列出了一些可用文章。

主题 说明
使用 MediaPlayer 播放音频和视频 演示如何利用 UWP 应用的媒体播放系统的新功能和改进。
媒体项、播放列表和曲目 演示如何使用 MediaSource 类,该类提供了一种从不同源(如本地或远程文件)引用和播放媒体的常见方法,并公开用于访问媒体数据的通用模型,而不考虑基础媒体格式。
与系统媒体传输控件集成 演示如何将应用与系统媒体传输控件 (SMTC) 集成。
系统支持的计时元数据提示 介绍如何利用可嵌入媒体文件或流中的多种时间元数据格式。
创建、计划和管理媒体中断 演示如何创建、计划和管理媒体播放应用的媒体中断。
在后台播放媒体 演示如何配置应用,以便在应用从前台移动到后台时媒体继续播放。
自适应流式处理 介绍如何将自适应流式处理多媒体内容的播放添加到 通用 Windows 平台 (UWP) 应用。
媒体转换 演示如何从通用 Windows 应用将媒体强制转换为远程设备。
PlayReady DRM 介绍如何将受 PlayReady 保护的媒体内容添加到 通用 Windows 平台 (UWP) 应用。

媒体播放 SDK 示例

以下 SDK 示例演示了适用于 Windows 10 上的 UWP 应用的媒体播放功能。 可以将这些示例用于查看上下文中所使用的媒体播放 API,或者用作你自己的应用的起始点。

版本历史记录

Windows 版本 SDK 版本 已添加值
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

构造函数

MediaPlayer()

初始化 MediaPlayer 对象的新实例。

属性

AudioBalance

获取或设置立体声扬声器之间的音量比率。

AudioCategory

获取或设置当前正在播放的音频的类型。

AudioDevice

获取或设置表示 MediaPlayer 用于呈现音频的音频设备的 DeviceInformation 对象。

AudioDeviceType

获取或设置一个值,该值描述用于播放音频的设备的主要用法。

AudioStateMonitor

获取一个 AudioStateMonitor 对象,该对象允许 UWP 应用确定应用的任何音频流当前是否处于静音状态或系统减少其音量。

AutoPlay

获取或设置一个布尔值,该值指示是否在加载媒体后自动开始播放。

BreakManager

获取与 MediaPlayer 关联的 MediaBreakManager,后者提供有关玩家媒体中断的信息和控制。

BufferingProgress

获取为媒体内容完成的缓冲量,以百分比表示。

注意

Windows 10版本 1607 之后,MediaPlayer.BufferingProgress 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.BufferingProgress 属性。

CanPause

获取一个布尔值,该值指示媒体是否可以暂停。

注意

Windows 10版本 1607 后,MediaPlayer.CanPause 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.CanPause 属性。

CanSeek

获取一个布尔值,该值指示媒体是否支持查找特定位置。

注意

在 Windows 10 版本 1607 之后,MediaPlayer.CanSeek 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.CanSeek 属性。

CommandManager

获取与 MediaPlayer 关联的 MediaPlaybackCommandManager,它指定和接收来自系统媒体传输控件的事件的行为。

CurrentState

获取媒体播放的当前状态。

注意

Windows 10版本 1607 之后,MediaPlayer.CurrentState 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.PlaybackState 属性。

IsLoopingEnabled

获取或设置一个布尔值,该值指示媒体是否会在重复循环中播放。

IsMuted

获取或设置一个布尔值,该值指示音频是否静音。

IsProtected

获取一个布尔值,该值指示内容是否受数字权限管理系统保护。

注意

Windows 10版本 1607 之后,MediaPlayer.IsProtected 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 IsProtected 属性。

IsVideoFrameServerEnabled

获取一个值,该值指示是否为 MediaPlayer 实例启用视频帧服务器模式。

NaturalDuration

获取媒体的实际持续时间,而无需应用 PlaybackRate

注意

Windows 10版本 1607 之后,MediaPlayer.NaturalDuration 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.NaturalDuration 属性。

PlaybackMediaMarkers

获取媒体的时间线标记的集合。

注意

Windows 10版本 1607 之后,MediaPlayer.PlaybackMediaMarkers 可能会更改或不可用。 请改用 MediaPlaybackItem.TimedMetadataTracks 来管理数据或文本提示。有关详细信息,请参阅 MediaSource 的媒体播放

PlaybackRate

获取或设置以比率表示的播放速率。

注意

在 Windows 10 版本 1607 之后,MediaPlayer.PlaybackRate 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.PlaybackRate 属性。

PlaybackSession

获取与 MediaPlayer 关联的 MediaPlaybackSession,它提供有关当前播放会话的状态的信息,并提供用于响应播放会话状态更改的事件。

Position

获取或设置媒体中的播放位置。

注意

1607 版Windows 10后,MediaPlayer.Position 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.Position 属性。

ProtectionManager

获取或设置媒体的内容保护管理器。

RealTimePlayback

获取或设置一个值,该值为实时播放视频等实时方案配置 MediaPlayer

Source

设置媒体播放器的播放源。

StereoscopicVideoRenderMode

获取或设置一个值,该值指示当前立体呈现模式。

SystemMediaTransportControls

获取 SystemMediaTransportControls 类的实例,以便用户能够控制 MediaPlayer 的播放,并允许应用显示有关系统 UI 中当前播放内容的信息。

TimelineController

获取或设置与 MediaPlayer 关联的 MediaTimelineController。 使用此属性通过单个时间线控件操作多个 MediaPlayer 实例。

TimelineControllerPositionOffset

获取或设置应用于与 MediaPlayer 关联的 MediaTimelineController 位置的偏移量。

Volume

获取或设置媒体播放的音频音量。

方法

AddAudioEffect(String, Boolean, IPropertySet)

MediaPlayer 的播放流添加音频效果。

AddVideoEffect(String, Boolean, IPropertySet)

将视频效果应用于媒体播放。

Close()

关闭 MediaPlayer 并释放关联的资源。

CopyFrameToStereoscopicVideoSurfaces(IDirect3DSurface, IDirect3DSurface)

MediaPlayer 当前显示的视频帧复制到两个提供的 IDirect3DSurface 对象,这些对象代表立体声视频帧的左眼和右眼内容。

CopyFrameToVideoSurface(IDirect3DSurface)

将当前视频帧从 MediaPlayer 复制到提供的 IDirect3DSurface

CopyFrameToVideoSurface(IDirect3DSurface, Rect)

将当前视频帧从 MediaPlayer 复制到提供的 IDirect3DSurface 中的指定目标矩形。

GetAsCastingSource()

获取表示 MediaPlayerCastSource,它允许其媒体转换为其他设备。

GetSurface(Compositor)

获取 MediaPlayer 的 MediaPlayerSurface 对象,该对象允许使用 Compositor 呈现播放器的内容,而无需依赖 XAML 框架。

Pause()

暂停媒体播放。

Play()

启动媒体播放。

RemoveAllEffects()

MediaPlayer 的播放流中删除所有效果。

RenderSubtitlesToSurface(IDirect3DSurface)

请求系统将当前副标题文本呈现到提供的 IDirect3DSurface

RenderSubtitlesToSurface(IDirect3DSurface, Rect)

请求系统将当前副标题文本呈现到提供的 IDirect3DSurface 中的指定目标矩形。

SetFileSource(IStorageFile)

将媒体源设置为文件。

注意

MediaPlayer.SetFileSource 可能会在Windows 10后更改或不可用。 请改用 MediaPlayer.Source

SetMediaSource(IMediaSource)

设置用于播放的媒体源。

注意

Windows 10后,MediaPlayer.SetMediaSource 可能会更改或不可用。 请改用 MediaPlayer.Source

SetStreamSource(IRandomAccessStream)

将媒体源设置为流。

注意

Windows 10后,MediaPlayer.SetMediaSource 可能会更改或不可用。 请改用 MediaPlayer.Source

SetSurfaceSize(Size)

设置 GetSurface 返回的合成图面的大小。

SetUriSource(Uri)

设置媒体的路径。

注意

mediaPlayer.SetUriSource 可能会在Windows 10后更改或不可用。 请改用 MediaPlayer.Source

StepBackwardOneFrame()

使 MediaPlayer 的播放位置向后移动 042 秒,这对应于 24 fps 的帧,而不管播放的内容的实际帧速率如何。

StepForwardOneFrame()

使 MediaPlayer 在当前媒体中向前移动一个帧。

事件

BufferingEnded

当完成缓冲时发生。

注意

Windows 10版本 1607 之后,MediaPlayer.BufferingEnded 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.BufferingEnded 事件。

BufferingStarted

当开始缓冲时发生。

注意

Windows 10版本 1607 之后,MediaPlayer.BufferingStarted 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.BufferingStarted 事件。

CurrentStateChanged

当媒体播放器的状态发生更改时发生。

注意

Windows 10版本 1607 之后,MediaPlayer.CurrentStateChanged 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.PlaybackStateChanged 事件。

IsMutedChanged

MediaPlayer 的当前静音状态更改时发生。

MediaEnded

在媒体完成播放时发生。

MediaFailed

当遇到错误时发生。

MediaOpened

在打开媒体时发生。

MediaPlayerRateChanged

当媒体播放速率发生更改时发生。

注意

Windows 10版本 1607 之后,MediaPlayer.MediaPlayerRateChanged 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.PlaybackRateChanged 事件。

PlaybackMediaMarkerReached

在播放期间到达媒体标记时发生。

注意

Windows 10版本 1607 后,MediaPlayer.PlaybackMediaMarkerReached 可能会更改或不可用。 请改用 MediaPlaybackItem.TimedMetadataTracks 来管理数据或文本提示。有关详细信息,请参阅 MediaSource 的媒体播放

SeekCompleted

查找操作完成时发生。

注意

Windows 10版本 1607 后,MediaPlayer.SeekCompleted 可能会更改或不可用。 请改用 MediaPlayer.PlaybackSession 属性获取 MediaPlaybackSession 对象,然后使用 MediaPlaybackSession.SeekCompleted 事件。

SourceChanged

MediaPlayer 的媒体源发生更改时发生。

SubtitleFrameChanged

MediaPlayer 处于帧服务器模式时,当前副标题内容已更改时发生。

VideoFrameAvailable

IsVideoFrameServerEnabled 设置为 true 并且新的视频帧可用于处理时发生。

VolumeChanged

当音频音量发生更改时发生。

适用于