Bagikan melalui


Penyedia Metadata Shell

Mulai windows 7, Microsoft Media Foundation memaparkan metadata melalui antarmuka IPropertyStore .

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 objek IPropertyStore 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 antarmuka IMFMediaSource dari sumber media. Anda dapat menggunakan antarmuka IMFSourceResolver untuk mendapatkan penunjuk IMFMediaSource .
  2. Panggil MFGetService di sumber media untuk mendapatkan penunjuk ke antarmuka IPropertyStore . Dalam parameter guidServiceMFGetService, tentukan nilai MF_PROPERTY_HANDLER_SERVICE. Jika sumber tidak mendukung antarmuka IPropertyStore , MFGetService mengembalikan MF_E_UNSUPPORTED_SERVICE.
  3. Panggil metode IPropertyStore untuk 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.

Media Metadata