MediaStreamSource Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Medienquelle dar, die Medienbeispiele direkt an die Medienpipeline übermittelt.
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
- Vererbung
- Attribute
- Implementiert
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Hinweise
Im MediaStreamSource-Beispiel finden Sie ein Beispiel für die Verwendung der Medienstreamquelle in einer UWP-App.
MediaStreamSource ist eine neue generische Medienquelle für UWP-Apps, die in Windows 8.1 eingeführt wird. Mit MediaStreamSource können Apps komprimierte oder unkomprimierte Audio- und Videobeispiele zur Wiedergabe, Transcodierung und Streaming an die Medienpipeline senden. Medienbeispiele können dynamisch von der App generiert oder aus einem Stream oder dateien entfernt werden. Dank dieser Flexibilität können Apps die Plattformunterstützung für neue Medienformate einfacher erweitern oder komplexe Probleme wie adaptives Streaming lösen.
Die MediaStreamSourceAPI ist der Gleichnamigen Microsoft SilverlightAPI sehr ähnlich.
MediaStreamSource kann mit Audio- und Videoobjekten in Windows-Apps mit JavaScript, MediaElement-Objekten in UWP-Apps mit C++, C# oder Visual Basic und mediaTranscoder verwendet werden.
Das MediaStreamSource-Beispiel veranschaulicht die Verwendung von MediaStreamSource. Im Folgenden finden Sie einige der Standard MediaStreamSource-API. Die Reihenfolge beschreibt den grundlegenden Ablauf der Funktionsweise von MediaStreamSource. Sie werden feststellen, dass MediaStreamSource Anforderungsobjekte über Ereignisargumente an die App sendet. Diese Anforderungsobjekte ermöglichen es der App, mit mediaStreamSource zu interagieren und Daten an diese zurück zu übergeben.
API | BESCHREIBUNG |
---|---|
Mediastreamsource | Stellt eine Medienquelle dar, die Medienbeispiele direkt an die Medienpipeline übermittelt. MediaStreamSource verwendet MediaStreamSample-Objekte , die von der Anwendung bereitgestellt werden. |
MediaStreamSample | Stellt ein Medienbeispiel dar, das von mediaStreamSource verwendet wird. |
MediaStreamSource.Starting (Ereignis) | MediaStreamSource verwendet dieses Ereignis, um die App zu benachrichtigen, dass sie mit der Verarbeitung von Mediendaten beginnen kann. |
MediaStreamSourceStartingRequest | Stellt eine Anforderung von MediaStreamSource dar, dass sie bereit ist, mit der Verarbeitung von Mediendaten zu beginnen. Apps sollten so schnell wie möglich auf diese Anforderung antworten, indem sie SetActualStartPosition für die Anforderung aufrufen. Wenn eine App die Verarbeitung von Daten von MediaStreamSource verzögern muss, kann sie eine asynchrone Verzögerung von MediaStreamSourceStartingRequest.GetDeferral erhalten. Wenn die App für den Start von MediaStreamSource bereit ist, ruft sie Complete für das Deferral-Objekt auf. Auf die startende Anforderung wird über die MediaStreamSourceStartingEventArgs zugegriffen, die an den MediaStreamSource.Starting-Ereignishandler übergeben werden. |
MediaStreamSource.SampleRequested (Ereignis) | MediaStreamSource verwendet dieses Ereignis, um die App zu benachrichtigen, dass sie für ein MediaStreamSample bereit ist. Apps müssen einen Handler für dieses Ereignis registrieren. |
MediaStreamSourceSampleRequest | Stellt eine Anforderung von MediaStreamSource für ein neues Medienbeispiel dar. Wenn Sie die Sample-Eigenschaft auf die neue MediaStreamSample-Eigenschaft festlegen, wird die MediaStreamSource ausgelöst, um das Medienbeispiel abzurufen und die Verarbeitung der Mediendaten fortzusetzen. Apps sollten so schnell wie möglich auf diese Anforderung antworten. Wenn eine App Zeit vor dem Senden von MediaStreamSample benötigt, kann sie eine asynchrone Verzögerung von MediaStreamSourceSampleRequest.GetDeferral erhalten. Wenn die App mit dem Zurückstellen abgeschlossen ist, ruft sie Complete für das Deferral-Objekt auf. Der Zugriff auf die Beispielanforderung erfolgt über die MediaStreamSourceSampleRequestedEventArgs , die an den MediaStreamSource.SampleRequest-Ereignishandler übergeben werden. Die App gibt an, dass sie das Ende des Streams erreicht hat, indem sie auf eine MediaStreamSourceSampleRequest antwortet, ohne ein MediaStreamSample bereitzustellen, oder indem sie die MediaStreamSourceSampleRequest.Sample-Eigenschaftnull zuweisen. |
MediaStreamSource.Closed (Ereignis) | MediaStreamSource verwendet dieses Ereignis, um die App darüber zu informieren, dass sie heruntergefahren wurde. |
MediaStreamSourceClosedRequest | Stellt eine Anforderung aus der MediaStreamSource dar, die geschlossen wurde. Auf die Close-Anforderung wird über die MediaStreamSourceClosedEventArgs zugegriffen, die an den MediaStreamSource.Closed-Ereignishandler übergeben werden. |
MediaElement.SetMediaStreamSource | Legt die Quelle des MediaElement auf eine MediaStreamSource fest. |
Versionsverlauf
Windows-Version | SDK-Version | Mehrwert |
---|---|---|
1607 | 14393 | SampleRendered |
1703 | 15063 | MaxSupportedPlaybackRate |
1709 | 16299 | IsLive |
Konstruktoren
MediaStreamSource(IMediaStreamDescriptor) |
Erstellt eine instance von MediaStreamSource aus dem angegebenen IMediaStreamDescriptor. |
MediaStreamSource(IMediaStreamDescriptor, IMediaStreamDescriptor) |
Erstellt eine instance von MediaStreamSource aus zwei IMediaStreamDescriptor-Objekten. |
Eigenschaften
BufferTime |
Ruft die Datenmenge ab, die von MediaStreamSource gepuffert wird, oder legt diese fest. |
CanSeek |
Ruft ab oder legt fest, ob die Anwendung das Ändern ihrer Position in der Medienzeitlinie unterstützt oder nicht. |
Duration |
Ruft die Dauer der Medienzeitlinie ab oder legt sie fest. |
IsLive |
Ruft einen Wert ab, der angibt, ob der verarbeitete Medieninhalt live ist, oder legt einen Wert fest. |
MaxSupportedPlaybackRate |
Ruft die maximal unterstützte Wiedergaberate für MediaStreamSource ab. |
MediaProtectionManager |
Ruft den MediaProtectionManager ab, der zum Schutz der Medien verwendet wird, oder legt diesen fest. |
MusicProperties |
Ruft die Musikeigenschaften ab, die für musikbezogene Metadaten verwendet werden. |
Thumbnail |
Ruft die Miniaturansicht ab, die ein Verweis auf einen Stream für ein Videominiaturbild oder ein Musikalbumbild ist, oder legt diese fest. |
VideoProperties |
Ruft die Videoeigenschaften ab, die für videobezogene Metadaten verwendet werden. |
Methoden
AddProtectionKey(IMediaStreamDescriptor, Byte[], Byte[]) |
Fügt einen DRM-Schutzschlüssel (Digital Rights Management) hinzu, der vom MediaProtectionManager zum Verschlüsseln und Entschlüsseln des angegebenen Datenstroms verwendet wird. |
AddStreamDescriptor(IMediaStreamDescriptor) |
Fügt der MediaStreamSource einen neuen Streamdeskriptor hinzu. |
NotifyError(MediaStreamSourceErrorStatus) |
Benachrichtigt die MediaStreamSource , dass ein Fehler aufgetreten ist, der die Anwendung daran hindert, weiterhin Daten an MediaStreamSource zu übermitteln. |
SetBufferedRange(TimeSpan, TimeSpan) |
Legt den Datenbereich fest, den die Anwendung derzeit puffert. |
Ereignisse
Closed |
Tritt auf, wenn mediaStreamSource heruntergefahren wird. |
Paused |
Tritt auf, wenn die MediaStreamSource angehalten ist und die Anforderung von MediaStreamSample-Objekten für einen nicht angegebenen Zeitraum anhält. Es wird jedoch erwartet, dass die Anforderung von MediaStreamSample-Objekten von der aktuellen Position fortgesetzt wird. |
SampleRendered |
Tritt auf, wenn ein Beispiel aus der MediaStreamSource gerendert wird. |
SampleRequested |
Tritt auf, wenn mediaStreamSource einen MediaStreamSample für einen angegebenen Stream angibt. |
Starting |
Tritt auf, wenn mediaStreamSource bereit ist, mediaStreamSample-Objekte anzufordern. Das -Ereignis kann eine Position in der Medienzeitzeile angeben, von der aus das erste MediaStreamSample übermittelt werden soll. |
SwitchStreamsRequested |
Tritt auf, wenn MediaStreamSource die Anforderung von MediaStreamSample-Objekten für einen bestimmten Stream beendet und stattdessen mediaStreamSample-Objekte aus einem anderen Stream anfordert. |