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 Platform::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

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

AudioDeviceType

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

AudioStateMonitor

获取 一个 AudioStateMonitor 对象,该对象允许 UWP 应用确定应用的任何音频流当前是否正在静音或被系统减小其音量。

AutoPlay

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

BreakManager

获取与 MediaPlayer 关联的 MediaBreakManager,它提供有关播放器媒体中断的信息和控制。

BufferingProgress

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

注意

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

CanPause

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

注意

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

CanSeek

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

注意

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

CommandManager

获取与 MediaPlayer 关联的 MediaPlaybackCommandManager,该命令指定 的行为并从系统媒体传输控件接收事件。

CurrentState

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

注意

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

IsLoopingEnabled

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

IsMuted

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

IsProtected

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

注意

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

IsVideoFrameServerEnabled

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

NaturalDuration

在不应用 PlaybackRate 的情况下获取媒体的实际持续时间。

注意

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

PlaybackMediaMarkers

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

注意

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

PlaybackRate

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

注意

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

PlaybackSession

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

Position

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

注意

mediaPlayer.Position 可能在Windows 10版本 1607 之后更改或不可用。 请改用 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 中的指定目标矩形。

Dispose()

执行与释放或重置非托管资源关联的应用程序定义的任务。

GetAsCastingSource()

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

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)

设置用于播放的媒体源。

注意

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

SetStreamSource(IRandomAccessStream)

将媒体源设置为流。

注意

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

SetSurfaceSize(Size)

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

SetUriSource(Uri)

设置媒体的路径。

注意

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

StepBackwardOneFrame()

导致 MediaPlayer 的播放位置向后移动 0.042 秒,这对应于 24 fps 的一帧,而不管正在播放的内容的实际帧速率如何。

StepForwardOneFrame()

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

事件

BufferingEnded

当完成缓冲时发生。

注意

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

BufferingStarted

当开始缓冲时发生。

注意

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

CurrentStateChanged

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

注意

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

IsMutedChanged

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

MediaEnded

在媒体完成播放时发生。

MediaFailed

当遇到错误时发生。

MediaOpened

在打开媒体时发生。

MediaPlayerRateChanged

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

注意

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

PlaybackMediaMarkerReached

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

注意

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

SeekCompleted

在搜寻操作完成时发生。

注意

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

SourceChanged

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

SubtitleFrameChanged

MediaPlayer 处于帧服务器模式时,当前字幕内容发生更改时发生。

VideoFrameAvailable

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

VolumeChanged

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

适用于