Verwenden von Medienerweiterungen (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation ]

In diesem Thema wird beschrieben, was Medienerweiterungen sind und wie Sie sie in Ihrer Windows-Runtime-App verwenden können.

Einführung

Medienerweiterungen fügen der Medienpipeline in Ihrer Windows-Runtime-App Funktionen hinzu. Einige mögliche Erweiterungen sind Audio- und Videoeffekte, Aufnahmeeffekte, Transcodieren, DRM (Verwaltung digitaler Rechte), Unterstützung neuer Decoder und Encoder, eine benutzerdefinierte Aufnahmesenke usw. Einige Erweiterungen sind im System integriert, wie der VideoStabilization-Effekt und DRM MediaProtectionManager. Nicht im System integrierte Funktionen können mithilfe benutzerdefinierter Medienerweiterungen hinzugefügt werden.

Ein detailliertes Beispiel, in dem benutzerdefinierte Medienerweiterungen verwendet werden, finden Sie im Beispiel für Medienerweiterungen. In diesem Beispiel ist die Erstellung und Aktivierung eines benutzerdefinierten Videograustufeneffekts und eines benutzerdefinierten Decoders sowie die Verwendung des integrierten VideoStabilization-Effekts dargestellt.

Ein weiteres Beispiel, in dem Medienerweiterungen verwendet werden, ist das Beispiel für Echtzeitkommunikation.

Medienpipeline und Hinzufügen sowie Entfernen von Effekten und Erweiterungen

Die Media Foundation-Pipeline besteht aus Medienquellen, Media Foundation-Transformationen, wie Videoeffekten, Encodern und Decodern, sowie Mediensenken. Es gibt eine Reihe von Möglichkeiten, Effekte und Erweiterungen zu Windows Store-Apps hinzuzufügen. MediaExtensionManager ermöglicht es, die Medienquelle sowie Encoder und Decoder zu ersetzen. Mit Methoden zur Wiedergabe, Aufnahme und zum Transcodieren von Objekten können Sie Effekte hinzufügen und entfernen. Mithilfe der MediaCapture-Klasse können Sie eine benutzerdefinierte Senke hinzufügen.

Wie Effekte zur Audio- und Videowiedergabe hinzugefügt werden, hängt von der verwendeten Programmiersprache ab.

Verwenden Sie für Windows-Runtime-Apps mit JavaScript msInsertVideoEffect, msInsertAudioEffect und msClearEffects. Diese Methoden werden in den HTML5-Tags audio und -video verfügbar gemacht.

Verwenden Sie für Windows-Runtime-Apps C# oder Visual Basic MediaElement.AddAudioEffect, MediaElement.AddVideoEffect und RemoveAllEffects.

Verwenden Sie zum Hinzufügen und Entfernen von Effekten beim Transcodieren MediaTranscoder.AddVideoEffect, MediaTranscoder.AddAudioEffect und MediaTranscoder.ClearEffects.

Verwenden Sie zum Hinzufügen und Entfernen von Effekten bei der Medienaufnahme MediaCapture.AddEffectAsync und MediaCapture.ClearEffectsAsync.

Zum Registrieren von Schemahandlern, Byte-Stream-Handlern, Audioencodern, Audiodecodern, Videoencodern und Videodecodern den MediaExtensionManager.

Verwenden Sie zum Hinzufügen einer benutzerdefinierten Senke zu Medienaufnahmen MediaCapture.StartRecordToCustomSinkAsync und MediaCapture.StartPreviewToCustomSinkAsync.

DRM wird über den MediaProtectionManager unterstützt.

Integrierte Erweiterung

Die Windows-Runtime stellt einen integrierten Effekt zum Stabilisieren von verwackelten Videos zur Verfügung, wie z. B. bei Videos von Handkameras.

Im Thema So wird's gemacht: Hinzufügen der Videostabilisierung wird die Verwendung des VideoStabilization-Effekts in einer Windows-Runtime-App mit JavaScript beschrieben. Im Beispiel für Medienerweiterungen wird auch gezeigt, wie der VideoStabilization-Effekt verwendet wird.

Benutzerdefinierte Erweiterungen

Sie können benutzerdefinierte Medienerweiterungen verwenden, um einer Medienpipeline neue Funktionen hinzuzufügen. Beispielsweise könnten Sie einen benutzerdefinierten Videoeffekt erstellen, um das Video wie im Beispiel für Medienerweiterungen in Graustufen zu konvertieren. Sie können auch eine benutzerdefinierte Erweiterung erstellen, die Unterstützung für Video- und Audioformate hinzufügt, die nicht vom System unterstützt werden.

Das Erstellen einer benutzerdefinierten Erweiterung besteht aus zwei Schritten. Zunächst wird eine Media Foundation-Komponente geschrieben. Im zweiten Schritt wird diese Komponente in einem Windows-Runtime-Medienerweiterungsobjekt zusammengefasst. Ein detailliertes Beispiel, in dem einige verschiedene benutzerdefinierte Medienerweiterungen erstellt werden, finden Sie im Beispiel für Medienerweiterungen.

Eine Medienerweiterung besteht aus einem Hybridobjekt, das sowohl Component Object Model (COM)- als auch Windows-Runtime-Schnittstellen implementiert. Die COM-Schnittstellen interagieren mit der Microsoft Media Foundation-Pipeline. Die Windows-Runtime-Schnittstellen aktivieren die Komponente und interagieren mit der Windows Store-App.

In den meisten Situationen empfiehlt es sich, Visual C++ mit Komponentenerweiterungen (C++/CX) für die Windows-Runtime-Interaktion zu verwenden. Im Fall von Hybridkomponenten, die sowohl COM- als auch Windows-Runtime-Schnittstellen implementieren, wie z. B. Medienerweiterungen, ist dies jedoch nicht möglich. C++/CX kann ausschließlich Windows-Runtime-Objekte erstellen. Es wird also für Hybridobjekte empfohlen, die C++-Vorlagenbibliothek für Windows-Runtime für die Interaktion mit Windows-Runtime zu verwenden. Berücksichtigen Sie jedoch, dass die C++-Vorlagenbibliothek für Windows-Runtime nur begrenzt Unterstützung für die Implementierung von COM-Schnittstellen bietet.

Denken Sie daran, dass auf benutzerdefinierte Erweiterungen nur von der App aus zugegriffen wird, in der sie erstellt und registriert wurden. Andere Apps können nicht darauf zugreifen.

Hh700365.wedge(de-de,WIN.10).gifErweiterte Schritte zum Erstellen eines benutzerdefinierten Effekts

  1. Erstellen Sie eine systemeigene Media Foundation-Erweiterung, und implementieren Sie IMediaExtension.
  2. Registrieren und aktivieren Sie die Erweiterung.
  3. Fügen Sie die Erweiterung in Ihrer Anwendung der Medienpipeline hinzu.

Weitere Informationen zum Erstellen einer Media Foundation-Medienerweiterung in Windows-Runtime-Apps finden Sie unter Exemplarische Vorgehensweise: Erstellen einer Windows Store-App mithilfe von WRL und Media Foundation und im Beispiel für Medienerweiterungen.

Verwandte Themen

Beispiel für Medienerweiterungen

Beispiel zum Transcodieren von Medien

Beispiel für Echtzeitkommunikation

Erstellen einer Windows Store-App mithilfe von WRL und Media Foundation

Media Foundation-Transformationen

Aktivieren von Effekten in der Video-Markierung

Hinzufügen der Videostabilisierung