共用方式為


MediaStreamSource 類別

定義

表示將媒體範例直接傳遞至媒體管線的媒體來源。

public ref class MediaStreamSource sealed
/// [Windows.Foundation.Metadata.Activatable(Windows.Media.Core.IMediaStreamSourceFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [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 MediaStreamSource 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(Windows.Media.Core.IMediaStreamSourceFactory, 65536, "Windows.Foundation.UniversalApiContract")]
class MediaStreamSource final
[Windows.Foundation.Metadata.Activatable(typeof(Windows.Media.Core.IMediaStreamSourceFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[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 MediaStreamSource
[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(typeof(Windows.Media.Core.IMediaStreamSourceFactory), 65536, "Windows.Foundation.UniversalApiContract")]
public sealed class MediaStreamSource
function MediaStreamSource(descriptor, descriptor2)
Public NotInheritable Class MediaStreamSource
繼承
Object Platform::Object IInspectable MediaStreamSource
屬性
實作

Windows 需求

裝置系列
Windows 10 (已於 10.0.10240.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)

備註

如需在 UWP 應用程式中使用媒體串流來源的範例,請參閱 MediaStreamSource 範例

MediaStreamSource 是 UWP app 的新一般媒體來源,Windows 8.1引進。 MediaStreamSource 可讓應用程式將壓縮或未壓縮的音訊和視訊範例傳送至媒體管線,以便播放、轉碼和串流。 媒體範例可由應用程式動態產生,或從資料流程或檔案取消多工處理。 這種彈性可讓應用程式更輕鬆地擴充新媒體格式的平臺支援,或解決複雜的問題,例如調適型串流。

MediaStreamSourceAPI 與相同名稱的 Microsoft SilverlightAPI 非常類似。

MediaStreamSource 可以搭配 Windows 應用程式中使用 JavaScript 的 音訊視訊 物件、使用 C++、C# 或 Visual Basic 的 UWP 應用程式中的 MediaElement 物件,以及 MediaTranscoder

MediaStreamSource 範例示範如何使用 MediaStreamSource。 以下是一些主要的 MediaStreamSource API。 順序概述 MediaStreamSource 運作方式的基本流程。 您會發現 MediaStreamSource 會透過事件引數將要求物件傳送至應用程式。 這些要求物件可讓應用程式與 MediaStreamSource 互動,並將資料傳回給它。

API 描述
MediaStreamSource 表示將媒體範例直接傳遞至媒體管線的媒體來源。 MediaStreamSource 會取用應用程式所提供的 MediaStreamSample 物件。
MediaStreamSample 表示 MediaStreamSource 所使用的媒體範例。
MediaStreamSource.Starting (事件) MediaStreamSource 會使用此事件通知應用程式已準備好開始處理媒體資料。
MediaStreamSourceStartingRequest 表示來自 MediaStreamSource 的要求,其已準備好開始處理媒體資料。 應用程式應該在要求上呼叫 SetActualStartPosition ,儘快回復此要求。 如果應用程式需要延遲 MediaStreamSource 處理資料,它可以從 MediaStreamSourceStartingRequest.GetDeferral取得非同步延遲。 當應用程式準備好讓 MediaStreamSource 啟動時,它會在延遲物件上呼叫 Complete 。 啟動要求是透過傳遞至MediaStreamSource.Starting事件處理常式的MediaStreamSourceStartingEventArgs來存取。
MediaStreamSource.SampleRequested (事件) MediaStreamSource 會使用此事件通知應用程式已準備好用於 MediaStreamSample。 需要應用程式才能註冊此事件的處理常式。
MediaStreamSourceSampleRequest 表示新媒體範例之 MediaStreamSource 的要求。 將 Sample 屬性設定為新的 MediaStreamSample 會觸發 MediaStreamSource 來擷取媒體範例,並繼續處理媒體資料。 應用程式應該儘快回復此要求。 如果應用程式在傳送 MediaStreamSample之前需要一段時間,它可以從 MediaStreamSourceSampleRequest.GetDeferral取得非同步延遲。 當應用程式完成延遲時,它會在延遲物件上呼叫 Complete 。 範例要求是透過傳遞至MediaStreamSource.SampleRequest事件處理常式的MediaStreamSourceSampleRequestedEventArgs來存取。 應用程式表示它已透過回應MediaStreamSourceSampleRequest 而未提供 MediaStreamSample,或將MediaStreamSourceSampleRequest.Sample屬性指派給null,來指出它已到達資料流程結尾。
MediaStreamSource.Closed (事件) MediaStreamSource 會使用此事件通知應用程式已關閉。
MediaStreamSourceClosedRequest 表示已關閉之 MediaStreamSource 的要求。 關閉要求是透過傳遞至MediaStreamSource.Closed事件處理常式的MediaStreamSourceClosedEventArgs來存取。
MediaElement.SetMediaStreamSource MediaElement 的來源設定為 MediaStreamSource。

版本歷程記錄

Windows 版本 SDK 版本 新增值
1607 14393 SampleRendered
1703 15063 MaxSupportedPlaybackRate
1709 16299 IsLive

建構函式

MediaStreamSource(IMediaStreamDescriptor)

從指定的IMediaStreamDescriptor建立MediaStreamSource的實例。

MediaStreamSource(IMediaStreamDescriptor, IMediaStreamDescriptor)

從兩個IMediaStreamDescriptor物件建立MediaStreamSource的實例。

屬性

BufferTime

取得或設定 MediaStreamSource緩衝的資料量。

CanSeek

取得或設定應用程式是否支援在媒體時間軸中變更其位置。

Duration

取得或設定媒體時間表的持續時間。

IsLive

取得或設定值,指出正在處理的媒體內容是否為即時。

MaxSupportedPlaybackRate

取得 MediaStreamSource支援的最大播放速率。

MediaProtectionManager

取得或設定用來保護媒體的數位版權管理 (DRM) MediaProtectionManager

MusicProperties

取得用於音樂相關中繼資料的音樂屬性。

Thumbnail

取得或設定縮圖,這是視訊縮圖影像或音樂相簿藝術師資料流程的參考。

VideoProperties

取得用於影片相關中繼資料的視訊屬性。

方法

AddProtectionKey(IMediaStreamDescriptor, Byte[], Byte[])

新增 Digital Rights Management (DRM) 保護金鑰, MediaProtectionManager 會使用此金鑰來加密和解密指定的資料流程。

AddStreamDescriptor(IMediaStreamDescriptor)

將新的資料流程描述元新增至 MediaStreamSource

NotifyError(MediaStreamSourceErrorStatus)

通知 MediaStreamSource 發生錯誤,導致應用程式無法繼續將資料傳遞至 MediaStreamSource

SetBufferedRange(TimeSpan, TimeSpan)

設定應用程式目前緩衝處理的資料範圍。

事件

Closed

發生于 MediaStreamSource 正在關閉時。

Paused

MediaStreamSource 暫停並停止要求 MediaStreamSample 物件一段未指定的時間,但預期會繼續從目前位置要求 MediaStreamSample 物件時發生。

SampleRendered

發生于 轉譯 MediaStreamSource 中的範例時。

SampleRequested

MediaStreamSource 要求指定資料流程的 MediaStreamSample 時發生。

Starting

MediaStreamSource 準備好開始要求 MediaStreamSample 物件時發生。 事件可以指定媒體時間表中應該從中傳遞第一個 MediaStreamSample 的位置。

SwitchStreamsRequested

MediaStreamSource 停止要求特定資料流程的 MediaStreamSample 物件,並改為開始向不同的資料流程要求 MediaStreamSample 物件時發生。

適用於

另請參閱