Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Implementiert von Medienquellobjekten.
Medienquellen sind Objekte, die Mediendaten generieren. Beispielsweise können die Daten aus einer Videodatei, einem Netzwerkdatenstrom oder einem Hardwaregerät wie einer Kamera stammen. Jede Medienquelle enthält einen oder mehrere Datenströme, und jeder Datenstrom liefert Daten eines Typs, z. B. Audio oder Video.
Vererbung
Die IMFMediaSource-Schnittstelle erbt von IMFMediaEventGenerator. IMFMediaSource verfügt auch über diese Typen von Mitgliedern:
Methodik
Die IMFMediaSource-Schnittstelle hat diese Methoden.
|
IMFMediaSource::CreatePresentationDescriptor Ruft eine Kopie der Präsentationsbeschreibung der Medienquelle ab. Anwendungen verwenden den Präsentationsdeskriptor, um Datenströme auszuwählen und Informationen zum Quellinhalt abzurufen. |
|
IMFMediaSource::GetCharacteristics Ruft die Merkmale der Medienquelle ab. |
|
IMFMediaSource::P ause Hält alle aktiven Datenströme in der Medienquelle an. |
|
IMFMediaSource::Shutdown Beendet die Medienquelle und gibt die verwendeten Ressourcen frei. |
|
IMFMediaSource::Start Startet, sucht oder startet die Medienquelle neu, indem angegeben wird, wo die Wiedergabe gestartet werden soll. |
|
IMFMediaSource::Stop Beendet alle aktiven Datenströme in der Medienquelle. |
Bemerkungen
In Windows 8 wird diese Schnittstelle mit IMFMediaSourceEx erweitert.
Für einige Gerätequellen, z. B. Kameras oder Mikrofone, implementiert die IMFMediaSource auch das IKsControl , das von Benutzermodusanwendungen verwendet werden kann, um KSPROPERTY-, KSEVENT- und KSMETHOD-Vorgänge an den zugrunde liegenden Gerätetreiber auszuweisen.
Hinweis
Diese Schnittstelle ist optional und ist möglicherweise nicht verfügbar. Wenn diese Schnittstelle nicht verfügbar ist, gibt QueryInterface E_NOINTERFACE zurück.
Rufen Sie eine Instanz von IMFMediaSource ab, indem Sie IMFSourceResolver::CreateObjectFromByteStream, IMFSourceResolver::CreateObjectFromURL oder die asynchronen Versionen dieser Methoden aufrufen.
Das folgende Beispiel zeigt, wie Sie MITHILFE von IMFSourceResolver eine Instanz von IMFMediaSource aus einem IMFByteStream abrufen.
#include <wil.h>
#include <mfplat.h>
#include <mfidl.h>
HRESULT CreateMediaSourceFromStream(_In_ IMFByteStream* stream, _COM_Outptr_ IMFMediaSource** source)
{
*source = nullptr;
wil::com_ptr_nothrow<IMFSourceResolver> sourceResolver;
RETURN_IF_FAILED(MFCreateSourceResolver(&sourceResolver));
MF_OBJECT_TYPE objectType;
wil::com_ptr_nothrow<IUnknown> sourceUnknown;
RETURN_IF_FAILED(sourceResolver->CreateObjectFromByteStream(stream, nullptr, MF_RESOLUTION_MEDIASOURCE, nullptr, &objectType, &sourceUnknown));
RETURN_IF_FAILED(sourceUnknown.copy_to(IID_PPV_ARGS(source)));
return S_OK;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows Vista [Desktop-Apps | UWP-Apps] |
| Mindestanforderungen für unterstützte Server | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
| Zielplattform | Fenster |
| Header | mfidl.h |