使用自定义互斥类型

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

可以在配置文件中使用互斥对象来满足自定义方案的需求。 通过将 GUID 值CLSID_WMMUTEX_Unknown传递给 IWMMutualExclusion::SetType,可以通知互斥对象你正在使用自定义方案。

读取具有自定义互斥值的文件时,必须手动控制流选择。 reader 对象将使用添加到互斥的第一个流作为默认值。

使用以下步骤创建自定义互斥对象并将其添加到配置文件:

  1. 通过调用 WMCreateProfileManager 函数创建配置文件管理器。

  2. 从现有配置文件开始,或创建一个全新的配置文件。

  3. 通过调用 IWMProfile::CreateNewStream 将流添加到新配置文件。 使用 IWMStreamConfig 的方法根据需要配置流。 还可以调用 QueryInterface 来访问流配置对象中的其他接口。

    CreateNewStream 仅创建流配置对象,不会影响配置文件。 正确配置流后,必须调用 IWMProfile::AddStream 将流添加到配置文件。

  4. 通过调用 IWMProfile::CreateNewMutualExclusion 创建互斥对象。

  5. 通过调用直接从 IWMMutualExclusion(继承自 IWMStreamList) )提供的 IWMStreamList::AddStream (,将所需的流添加到相互排除对象。

  6. 通过调用 IWMMutualExclusion::SetType 将互斥的类型设置为自定义。 将CLSID_WMMUTEX_Unknown作为 GUID 类型传递。

  7. 通过调用 IWMProfile::AddMutualExclusion 将配置的互斥对象添加到配置文件。

IWMMutualExclusion 接口

IWMProfile 接口

IWMProfileManager 接口

IWMStreamConfig 接口

IWMStreamList 接口

使用互斥

WMCreateProfileManager