由媒体源对象实现。
媒体源是生成媒体数据的对象。 例如,数据可能来自视频文件、网络流或硬件设备,例如相机。 每个媒体源包含一个或多个流,每个流提供一种类型的数据,例如音频或视频。
继承
IMFMediaSource 接口继承自 IMFMediaEventGenerator。 IMFMediaSource 也有以下类型的成员:
Methods
IMFMediaSource 接口具有这些方法。
|
IMFMediaSource::CreatePresentationDescriptor 检索媒体源的演示文稿描述符的副本。 应用程序使用演示文稿描述符选择流并获取有关源内容的信息。 |
|
IMFMediaSource::GetCharacteristics 检索媒体源的特征。 |
|
IMFMediaSource::P ause 暂停媒体源中的所有活动流。 |
|
IMFMediaSource::Shutdown 关闭媒体源并释放其正在使用的资源。 |
|
IMFMediaSource::Start 通过指定开始播放的位置来启动、查找或重启媒体源。 |
|
IMFMediaSource::Stop 停止媒体源中的所有活动流。 |
注解
在 Windows 8 中,此接口使用 IMFMediaSourceEx 进行扩展。
对于某些设备源(如相机或麦克风), IMFMediaSource 还实现了 IKsControl,用户模式应用程序可以使用该 IKsControl 向基础设备驱动程序发出 KSPROPERTY、KSEVENT 和 KSMETHOD作。
注释
此接口是可选的,可能不可用。 如果此接口不可用, QueryInterface 将返回E_NOINTERFACE。
通过调用 IMFSourceResolver::CreateObjectFromByteStream、IMFSourceResolver::CreateObjectFromURL 或这些方法的异步版本获取 IMFMediaSource 的实例。
以下示例演示如何使用 IMFSourceResolver 从 IMFByteStream 获取 IMFMediaSource 的实例。
#include <wil.h>
#include <mfplat.h>
#include <mfidl.h>
HRESULT CreateMediaSourceFromStream(_In_ IMFByteStream* stream, _COM_Outptr_ IMFMediaSource** source)
{
*source = nullptr;
wil::com_ptr_nothrow<IMFSourceResolver> sourceResolver;
RETURN_IF_FAILED(MFCreateSourceResolver(&sourceResolver));
MF_OBJECT_TYPE objectType;
wil::com_ptr_nothrow<IUnknown> sourceUnknown;
RETURN_IF_FAILED(sourceResolver->CreateObjectFromByteStream(stream, nullptr, MF_RESOLUTION_MEDIASOURCE, nullptr, &objectType, &sourceUnknown));
RETURN_IF_FAILED(sourceUnknown.copy_to(IID_PPV_ARGS(source)));
return S_OK;
}
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | mfidl.h |