Bagikan melalui


Penyedia Metadata Shell

Mulai Windows 7, Microsoft Media Foundation memaparkan metadata melalui antarmukaIPropertyStore.

Metadata yang diperoleh menggunakan proses yang ditentukan dalam topik ini hanya boleh digunakan untuk akses baca-saja. Menulis data menggunakan proses ini tidak didukung. Anda dapat membuat objekIPropertyStore untuk tujuan penulisan menggunakan pengidentifikasi kelas (CLSID) yang diperoleh dari PSLookupPropertyHandlerCLSID.

Membaca Metadata

Untuk membaca metadata dari sumber media, lakukan langkah-langkah berikut:

  1. Dapatkan penunjuk ke antarmukaIMFMediaSourcesumber media. Anda dapat menggunakan antarmukaIMFSourceResolveruntuk mendapatkan pointer IMFMediaSource.
  2. PanggilMFGetServicedi sumber media untuk mendapatkan pointer ke antarmukaIPropertyStore. Dalam parameter guidServiceMFGetService, tentukan nilai MF_PROPERTY_HANDLER_SERVICE. Jika sumber tidak mendukung antarmuka IPropertyStore, MFGetService mengembalikan MF_E_UNSUPPORTED_SERVICE.
  3. Panggil metodeIPropertyStoreuntuk menghitung properti metadata.

Kode berikut menunjukkan langkah-langkah ini. Asumsikan bahwa DisplayProperty adalah fungsi yang menampilkan nilai PROPVARIANT.

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;
}

Untuk daftar kunci properti metadata, lihat Properti Metadata untuk File Media.

Metadata Media