設定媒體來源

當您使用 來源解析程式 建立媒體來源時,您可以指定包含組態屬性的屬性存放區。 這些屬性將用來初始化媒體來源。 支援的一組屬性取決於媒體來源的實作。 並非每個媒體來源都會定義組態屬性。

下表列出媒體基礎中提供的媒體來源組態屬性。 協力廠商媒體來源可以定義自己的自訂屬性。

媒體來源 屬性
網路來源 請參閱 網路來源功能
ASF 媒體來源

 

若要設定來源,請執行下列步驟。

  1. 呼叫 PSCreateMemoryPropertyStore 以建立新的屬性存放區。 此函式會傳回 IPropertyStore 指標。
  2. 呼叫 IPropertyStore::SetValue 以設定一或多個組態屬性。
  3. 呼叫其中一個來源解析程式的建立函式,例如IMFSourceResolver::CreateObjectFromURL,並在pProps參數中傳遞IPropertyStore指標。
// 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;
}

來源解析程式會將 IPropertyStore 指標直接傳遞至建立來源的配置處理常式或位元組資料流程處理常式。 來源解析程式不會嘗試驗證屬性。

一般而言,這些屬性會用於進階設定。 如果您未提供屬性存放區,媒體來源仍應使用預設設定正確運作。

來源解析程式