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 app 媒體播放系統的新功能和改進功能。
媒體項目、播放清單與曲目 示範如何使用 MediaSource 類別,其提供從本機或遠端檔案等不同來源參考和播放媒體的常見方式,並公開一般模型來存取媒體資料,而不論基礎媒體格式為何。
與系統媒體傳輸控制項整合 示範如何將應用程式與系統媒體傳輸控制項 (SMTC) 整合。
系統支援的定時中繼資料提示 描述如何利用數種格式的計時中繼資料,這些格式可能會內嵌在媒體檔案或資料流程中。
建立、排程與管理媒體中斷 示範如何建立、排程和管理媒體播放應用程式的媒體中斷。
在背景播放媒體 示範如何設定應用程式,讓媒體在應用程式從前景移至背景時繼續播放。
自適性串流 描述如何將調適型串流多媒體內容的播放新增至通用 Windows 平臺 (UWP) app。
媒體傳播 示範如何從通用 Windows 應用程式將媒體轉換成遠端裝置。
PlayReady DRM 說明如何將 PlayReady 保護的媒體內容新增至您的 通用 Windows 平臺 (UWP) app。

媒體播放 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 app 判斷任何應用程式的音訊串流目前是否為靜音,或讓系統減少其音量。

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()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

GetAsCastingSource()

取得代表MediaPlayerCastingSource,可讓媒體轉換成其他裝置。

GetSurface(Compositor)

取得MediaPlayerMediaPlayerSurface物件,可讓您使用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 的播放位置向後移動 .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

發生于音訊音量已變更時。

適用於