Kabuk Meta Veri Sağlayıcıları

Microsoft Media Foundation, Windows 7'den başlayarak IPropertyStore arabirimi aracılığıyla meta verileri kullanıma sunar.

Bu konuda tanımlanan işlem kullanılarak elde edilen meta veriler yalnızca salt okunur erişim için kullanılmalıdır. Bu işlemi kullanarak veri yazma desteklenmez. PSLookupPropertyHandlerCLSID'den alınan bir sınıf tanımlayıcısını (CLSID) kullanarak yazma amacıyla IPropertyStore nesnesi oluşturabilirsiniz.

Meta Verileri Okuma

Medya kaynağından meta verileri okumak için aşağıdaki adımları uygulayın:

  1. Medya kaynağının IMFMediaSource arabirimine bir işaretçi alın. BIR IMFMediaSource işaretçisi almak için IMFSourceResolver arabirimini kullanabilirsiniz.
  2. IPropertyStore arabirimine bir işaretçi almak için medya kaynağında MFGetService çağırın. MFGetServiceguidService parametresinde MF_PROPERTY_HANDLER_SERVICEdeğerini belirtin. Kaynak IPropertyStore arabirimini desteklemiyorsa, MFGetService MF_E_UNSUPPORTED_SERVICEdöndürür.
  3. Meta veri özelliklerini numaralandırmak için IPropertyStoreyöntemleriniçağırın.

Aşağıdaki kodda bu adımlar gösterilmektedir. DisplayProperty PROPVARIANT değeri görüntüleyen bir işlev olduğunu varsayalım.

HRESULT EnumerateMetadata(IMFMediaSource *pSource)
{
    IPropertyStore *pProps = NULL;

    HRESULT hr = MFGetService(
        pSource, MF_PROPERTY_HANDLER_SERVICE, IID_PPV_ARGS(&pProps));

    if (FAILED(hr))
    {
        goto done;
    }

    DWORD cProps;

    hr = pProps->GetCount(&cProps);
    if (FAILED(hr))
    {
        goto done;
    }

    for (DWORD i = 0; i < cProps; i++)
    {
        PROPERTYKEY key;
        hr = pProps->GetAt(i, &key);
        if (FAILED(hr))
        {
            goto done;
        }

        PROPVARIANT pv;

        hr = pProps->GetValue(key, &pv);
        if (FAILED(hr))
        {
            goto done;
        }

        DisplayProperty(key, pv);
        PropVariantClear(&pv);
    }

done:
    SafeRelease(&pProps);
    return hr;
}

Meta veri özellik anahtarlarının listesi için bkz. medya dosyaları için meta veri özellikleri .

Medya Meta Verileri