Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
- Medya kaynağının IMFMediaSource arabirimine bir işaretçi alın. BIR IMFMediaSource işaretçisi almak için IMFSourceResolver arabirimini kullanabilirsiniz.
- 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.
- 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 .
İlgili konular