使用媒体基础事件模型

[与此页面关联的功能 Windows Media Format 11 SDK 是一项旧功能。 它已被源读取器和接收器编写器取代。 源读取器和接收器编写器已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用源读取器和接收器编写器,而不是 Windows Media 格式 11 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

Windows Media DRM 客户端扩展 API 支持的异步方法使用媒体基础 SDK 使用的相同事件模型。 每个支持异步方法的对象都实现 IWMDRMEventGenerator 接口,该接口可用于在异步操作完成时检索事件。

IWMDRMEventGenerator 接口继承自 IMFMediaEventGenerator 接口,媒体基础 SDK 文档中记录了该接口。

DRM 个性化示例中的示例代码使用 IMFMediaEventGenerator::GetEvent 方法一次从队列中检索一个事件。 使用 GetEvent 比将 IMFMediaEventGenerator::BeginGetEventIMFMediaEventGenerator::EndGetEvent 与回调配合使用更简单,这使得代码示例更易于理解。 无论是在代码中使用 GetEvent 还是实现 IMFAsyncCallback 并使用 BeginGetEventEndGetEvent,接收事件后处理事件的逻辑都是相同的。

一些异步方法生成事件,这些事件包含对可用于获取更详细状态信息的对象的引用。 在这些情况下,生成的事件具有 一个 IUnknown 指针作为其值,可以查询该指针以检索状态接口。 以下列表汇总了异步调用、生成的事件和其他接口之间的关系。

DRM 个性化示例

入门

媒体基础 SDK 文档