Konfigurering av en mediekälla
När du använder Source Resolver för att skapa en mediekälla kan du ange ett egenskapsarkiv som innehåller konfigurationsegenskaper. Dessa egenskaper används för att initiera mediekällan. Uppsättningen egenskaper som stöds beror på implementeringen av mediekällan. Alla mediekällor definierar inte konfigurationsegenskaper.
I följande tabell visas konfigurationsegenskaperna för de mediekällor som tillhandahålls i Media Foundation. Mediekällor från tredje part kan definiera sina egna anpassade egenskaper.
Mediekälla | Egenskaper |
---|---|
Nätverkskälla | Se funktioner för nätverkskällor. |
ASF mediekälla |
Utför följande steg för att konfigurera en källa.
- Anropa PSCreateMemoryPropertyStore för att skapa en ny egenskapsbutik. Den här funktionen returnerar en IPropertyStore- pekare.
- Anropa IPropertyStore::SetValue för att ange en eller flera konfigurationsegenskaper.
- Anropa en av källlösningens skapandefunktioner, till exempel IMFSourceResolver::CreateObjectFromURLoch skicka pekaren IPropertyStore i parametern pProps.
// 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;
}
Källlösaren skickar IPropertyStore- pekaren direkt till schemahanteraren eller byteströmshanteraren som skapar källan. Källlösaren gör inga försök att verifiera egenskaperna.
I allmänhet används dessa egenskaper för avancerade inställningar. Om du inte anger en egenskapslagring ska mediekällan fortfarande fungera korrekt med standardinställningarna.
Relaterade ämnen