Konfigurieren einer Medienquelle

Wenn Sie den Quelllö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 der unterstützten 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 Media Foundation bereitgestellt werden. Medienquellen von Drittanbietern können ihre eigenen benutzerdefinierten 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 festzulegen.
  3. Rufen Sie eine der Erstellungsfunktionen des Quellresolvers auf, z. B. IMFSourceResolver::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 Quelllöser übergibt den IPropertyStore-Zeiger direkt an den Schemahandler oder byte-stream-Handler, der die Quelle erstellt. Der Quelllöser versucht nicht, die Eigenschaften zu überprüfen.

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

Quellkonfliktlöser