MediaStreamSource 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示將媒體範例直接傳遞至媒體管線的媒體來源。
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
- 繼承
- 屬性
- 實作
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 |
建構函式
屬性
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 物件時發生。 |