IMFSourceResolver::CreateObjectFromURL 方法 (mfidl.h)
從 URL 建立媒體來源或位元組數據流。 這個方法是同步方法。
語法
HRESULT CreateObjectFromURL(
[in] LPCWSTR pwszURL,
[in] DWORD dwFlags,
[in] IPropertyStore *pProps,
[out] MF_OBJECT_TYPE *pObjectType,
[out] IUnknown **ppObject
);
參數
[in] pwszURL
包含要解析之 URL 的 Null 終止字串。
[in] dwFlags
一或多個旗標的位 OR。 請參閱 來源解析程式旗標。 請參閱下面的<備註>。
[in] pProps
屬性存放區 之 IPropertyStore 介面的指標。 方法會將屬性存放區傳遞至建立 物件的配置處理程式或位元組數據流處理程式。 處理程式可以使用屬性存放區來設定 物件。 此參數可以是 Null。 如需詳細資訊,請參閱 設定媒體來源。
[out] pObjectType
接收 MF_OBJECT_TYPE 列舉的成員,並指定已建立的物件類型。
[out] ppObject
接收物件的 IUnknown 介面指標。 呼叫端必須釋放 介面。
傳回值
方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。
傳回碼 | 描述 |
---|---|
|
此方法已成功。 |
|
dwFlags 參數包含互斥旗標。 |
|
不支援URL配置。 |
備註
dwFlags 參數必須包含MF_RESOLUTION_MEDIASOURCE旗標或MF_RESOLUTION_BYTESTREAM旗標,但不能同時包含兩者。
建議您不要在輸入自變數 dwFlags 上設定MF_RESOLUTION_WRITE,除非您的案例是必要的。 對於大部分的使用案例,不需要使用寫入功能來建立媒體來源。 建立具有寫入功能的媒體來源,可能會比建立沒有寫入功能的媒體來源成功機率較低。 這是因為在建立具有寫入功能的媒體來源時,URL 所代表的內容可能會有更嚴格的檢查。
針對本機檔案,您可以在 pwszURL 參數中傳遞檔名;不需要配置 file:
。
注意 這個方法無法從遠端呼叫。
範例
// Create a media source from a URL.
HRESULT CreateMediaSource(PCWSTR sURL, IMFMediaSource **ppSource)
{
MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;
IMFSourceResolver* pSourceResolver = NULL;
IUnknown* pSource = NULL;
// Create the source resolver.
HRESULT hr = MFCreateSourceResolver(&pSourceResolver);
if (FAILED(hr))
{
goto done;
}
// Use the source resolver to create the media source.
// Note: For simplicity this sample uses the synchronous method to create
// the media source. However, creating a media source can take a noticeable
// amount of time, especially for a network source. For a more responsive
// UI, use the asynchronous BeginCreateObjectFromURL method.
hr = pSourceResolver->CreateObjectFromURL(
sURL, // URL of the source.
MF_RESOLUTION_MEDIASOURCE, // Create a source object.
NULL, // Optional property store.
&ObjectType, // Receives the created object type.
&pSource // Receives a pointer to the media source.
);
if (FAILED(hr))
{
goto done;
}
// Get the IMFMediaSource interface from the media source.
hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));
done:
SafeRelease(&pSourceResolver);
SafeRelease(&pSource);
return hr;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfidl.h |
程式庫 | Mfuuid.lib |