Medya Kaynağını Yapılandırma

Medya kaynağı oluşturmak için Kaynak Çözümleyicisi kullandığınızda, yapılandırma özelliklerini içeren bir özellik deposu belirtebilirsiniz. Bu özellikler, medya kaynağını başlatmak için kullanılır. Desteklenen özellikler kümesi, medya kaynağının uygulanmasına bağlıdır. Her medya kaynağı yapılandırma özelliklerini tanımlamaz.

Aşağıdaki tabloda Media Foundation'da sağlanan medya kaynaklarının yapılandırma özellikleri listelenir. Üçüncü taraf medya kaynakları kendi özel özelliklerini tanımlayabilir.

Medya kaynağı Özellikler
Ağ kaynağı Bkz. Ağ Kaynağı Özellikleri.
ASF medya kaynağı

 

Bir kaynağı yapılandırmak için aşağıdaki adımları uygulayın.

  1. Yeni bir özellik deposu oluşturmak için PSCreateMemoryPropertyStore çağır. Bu işlev IPropertyStore işaretçisi döndürür.
  2. Bir veya daha fazla yapılandırma özelliğini ayarlamak için IPropertyStore::SetValue çağrısı yapın.
  3. kaynak çözümleyicinin IMFSourceResolver::CreateObjectFromURLgibi oluşturma işlevlerinden birini çağırın ve pProps parametresinde IPropertyStore işaretçisini geçirin.
// 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;
}

Kaynak çözümleyici, IPropertyStore işaretçisini doğrudan kaynağı oluşturan düzen işleyicisine veya bayt akışı işleyicisine geçirir. Kaynak çözümleyici özellikleri doğrulama girişiminde bulunmaz.

Bu özellikler genellikle gelişmiş ayarlar için kullanılır. Özellik deposu sağlamazsanız, medya kaynağı varsayılan ayarlarla düzgün çalışmaya devam etmelidir.

Kaynak Çözümleyici