添加 ContentDistributor 属性

[与此页面关联的功能(Windows 媒体播放器 SDK)是旧版功能。 它已被 MediaPlayer 取代。 MediaPlayer 已针对Windows 10和Windows 11进行了优化。 如果可能,Microsoft 强烈建议新代码使用 MediaPlayer 而不是 Windows 媒体播放器 SDK。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

当用户尝试播放在线商店内容或将内容复制到 CD 或设备时,Windows 媒体播放器在 COM 对象中调用某些方法。 为此,Player 需要一种方法来区分你的内容与其他在线商店提供商的内容。 通过将在线商店密钥名称添加为 ContentDistributor ((它是 Windows Media Format SDK 属性 WM/ContentDistributor) 属性的别名)添加到基于 Windows Media 的内容,可以确保播放器可以识别与服务关联的内容。

ContentDistributor 添加值还可以确保Windows 媒体播放器将在库中为提供的内容创建节点。 请参阅 库集成

可以通过两种方式指定此值:

  • 使用Windows 媒体播放器对象模型。 执行此操作时,Windows 媒体播放器将指定的值添加到库数据库。 最终,播放器还会将属性值写入数字媒体文件。
  • 使用 Windows Media Format SDK 以编程方式添加 WM/ContentDistributor 属性。 执行此操作时,Windows 媒体播放器读取属性值,并在将数字媒体文件添加到库时将其添加到数据库。

创建在线商店 COM 对象时,为 ContentDistributor 设置的文件属性值与分配给 YourProject.h 中常量 kszContentDistributorID 的值必须完全匹配。 回想一下,在使用项目向导创建项目时为 COM 对象指定了此常量值。 可以手动更改此值。 只需确保使用唯一标识服务的字符串即可。

使用Windows 媒体播放器对象模型

若要使用 Windows 媒体播放器 对象模型为 ContentDistributor 指定值,请使用 Media.setItemInfo 方法。 以下示例代码为当前播放的媒体项的 ContentDistributor 指定值“Proseware”:

// Retrieve the current media item.
var theMedia = Player.currentMedia;

//Test whether the media item was retrieved.
if(theMedia)
{
    // Set the ContentDistributor value.
    theMedia.setItemInfo("ContentDistributor", "Proseware");
}

使用 Windows Media Format SDK

Windows 媒体播放器 SDK 包含一个名为 SetContentDistributor.cpp 的示例 C++ 文件,该文件演示如何使用 Windows Media Format 9 系列 SDK 添加 WM/ContentDistributor 属性。 可以在安装 SDK 的名为 Metadata 的文件夹中找到此示例文件。 若要使用此代码,必须执行以下步骤:

  1. 安装 Windows Media Format 9 系列 SDK 并配置运行时,如文档中所述。
  2. 在 Visual Studio 中创建一个新的空 C++ 项目,并将名为 SetContentDistributor.cpp 的示例文件添加到该项目。
  3. 将 Windows Media Format 9 Series SDK Lib 文件夹的路径添加到文件路径列表。 从“工具”菜单中选择“选项”
  4. “选项 ”对话框中,单击“ 项目”,然后单击“ VC++ 目录”。
  5. “显示目录” 下拉列表框中,单击“ 库文件”。
  6. 使用按钮将路径添加到列表框。
  7. 打开项目的属性页对话框。 依次选择“配置属性”、“链接器”和“输入”。 在“ 其他依赖项 ”文本框中键入“wmvcore.lib”。

示例代码创建命令行程序。 运行程序时提供的参数指定要修改的数字媒体文件的路径和 ContentDistributor 属性值的字符串。 代码使用 IWMHeaderInfo::SetAttribute 将 属性添加到指定的文件。 可以按原样使用此示例,也可以将其用作你自己的程序的起点。

类型 1 和类型 2 在线商店通用的信息