购买媒体内容

Windows 媒体播放器在库树视图中显示音乐内容时,用户界面包含用户可以单击的元素以购买内容。 例如,用户可以单击按钮购买单个歌曲或购买整个专辑。

如果活动在线商店是类型 1 商店,Windows 媒体播放器有权在在线商店目录中跟踪、专辑和列表价格。 目录中的价格是只有在线商店理解格式的字符串。 Windows 媒体播放器不解释价格字符串;它只是在用户界面元素(如“购买”按钮)中显示它们。

当Windows 媒体播放器为一组媒体项目设置购买时,它会通过调用 IWMPContentPartner::CanBuySilent 将媒体项目的 ID 和价格传递给内容合作伙伴插件。 此时,插件可以检查玩家提供的价格。 这些是用户期望支付的价格;也就是说,玩家向用户显示的价格。 根据玩家提供的媒体 ID 和价格,插件计算总价格,它将返回到 bstrTotalPrice 参数中的 Player。 玩家传递到 CanBuySilent 的价格提供插件的信息,但他们不强制插件返回特定的总价格。 插件可以计算总价格,因为它认为合适。

除了计算购买的总价格外, CanBuySilent 还决定清点是否可以无提示地继续:也就是说,不显示对话框。 如果 CanBuySilent 返回 True,Windows 媒体播放器只需更改“购买”按钮上的文本,提示用户确认购买。 如果 CanBuySilent 返回 False,Windows 媒体播放器将显示一个对话框,提示用户确认购买。 该对话框为用户提供了一些信息,这些信息汇总了诸如专辑数量、个人曲目数和插件) 返回的总价格 (。

用户确认购买后,玩家将调用 IWMPContentPartner::Buy。 此方法调用提供与 CanBuySilent 相同的内容容器列表的插件。 调用 Buy 时,Windows 媒体播放器还提供 cookie (只是一个 DWORD 值,对于会话) ,插件可用于标识事务。 事务完成后,插件必须调用 IWMPContentPartnerCallback::BuyComplete,传递 dwBuyCookie 参数的原始 Cookie 值,以通知玩家事务已完成。

类型 1 在线商店编程指南