Konfigurieren einer Medienquelle

Wenn Sie den Quellre konfliktlöser verwenden, um eine Medienquelle zu erstellen, können Sie einen Eigenschaftenspeicher angeben, der Konfigurationseigenschaften enthält. Diese Eigenschaften werden verwendet, um die Medienquelle zu initialisieren. Der Satz unterstützter Eigenschaften hängt von der Implementierung der Medienquelle ab. Nicht jede Medienquelle definiert Konfigurationseigenschaften.

In der folgenden Tabelle sind die Konfigurationseigenschaften für die Medienquellen aufgeführt, die in der Media Foundation. Medienquellen von Drittanbietern können eigene benutzerdefinierte Eigenschaften definieren.

Medienquelle Eigenschaften
Netzwerkquelle Weitere Informationen finden Sie unter Netzwerkquellenfeatures.
ASF-Medienquelle

Führen Sie zum Konfigurieren einer Quelle die folgenden Schritte aus.

  1. Rufen Sie PSCreateMemoryPropertyStore auf, um einen neuen Eigenschaftenspeicher zu erstellen. Diese Funktion gibt einen IPropertyStore-Zeiger zurück.
  2. Rufen Sie IPropertyStore::SetValue auf, um eine oder mehrere Konfigurationseigenschaften festlegen.
  3. Rufen Sie eine der Erstellungsfunktionen des Quellresolvers auf, wie z.B. DIE QUELLQUELLEResolver::CreateObjectFromURL,und übergeben Sie den IPropertyStore-Zeiger im pProps-Parameter.
// Creates a media source from a URL.

HRESULT CreateMediaSource(
    PCWSTR pszURL, 
    IPropertyStore *pConfig,    // Optional, can be NULL
    IMFMediaSource **ppSource
    )
{
    IMFSourceResolver* pSourceResolver = NULL;
    IUnknown* pSource = NULL;

    // Create the source resolver.
    HRESULT hr = MFCreateSourceResolver(&pSourceResolver);

    // Use the source resolver to create the media source.
    if (SUCCEEDED(hr))
    {
        MF_OBJECT_TYPE ObjectType;

        DbgLog(L"CreateObjectFromURL");

        hr = pSourceResolver->CreateObjectFromURL(
            pszURL,                     
            MF_RESOLUTION_MEDIASOURCE,  // Create a media source.
            pConfig,                    // Configuration properties.
            &ObjectType,                // Receives the object type. 
            &pSource            
            );

        DbgLog(L"CreateObjectFromURL - FINISHED");

    }

    if (SUCCEEDED(hr))
    {
        hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));
    }

    SafeRelease(&pSourceResolver);
    SafeRelease(&pSource);
    return hr;
}

Der Quellre resolver übergibt den IPropertyStore-Zeiger direkt an den Schemahandler oder bytestream-Handler, der die Quelle erstellt. Der Quellre resolver versucht nicht, die Eigenschaften zu überprüfen.

Im Allgemeinen werden diese Eigenschaften für erweiterte Einstellungen verwendet. Wenn Sie keinen Eigenschaftenspeicher bereitstellen, sollte die Medienquelle weiterhin ordnungsgemäß mit Standardeinstellungen funktionieren.

Quellre resolver