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 |
Library | Mfuuid.lib |