在设备上创建播放列表

Windows Media 设备管理器 SDK 为 MTP 应用程序提供了在设备上创建播放列表的方法。 这种类型的播放列表称为 抽象 播放列表,因为在设备上创建的文件不包含媒体数据,而只包含元数据,其中包含播放列表中媒体文件的链接。

可以在设备上创建的其他抽象项包括专辑 (基本上具有额外属性的播放列表,例如封面图片) 、联系人和消息。

创建播放列表

  1. 获取与目标设备的 IWMDMDevice3 接口。
  2. 调用 IWMDMDevice3::GetProperty 以获取 g_wszWMDMFormatsSupported 属性。
  3. 如果不支持播放列表格式,则禁止向设备发送播放列表,并跳过以下步骤。 否则,请选择与预期对象类型最匹配的设备支持的格式代码。 最常用支持泛型WMDM_FORMATCODE_ABSTRACTAUDIOVIDEOPLAYLIST和WMDM_FORMATCODE_ABSTRACTAUDIOLAYLIST格式代码。
  4. 获取存储的 IWMDMStorage3 接口, (根或要在其中创建对象的文件夹) 。 如果播放列表对象放置在名为“播放列表”的顶级文件夹中,则某些设备效果最佳。
  5. 使用 IWMDMStorage3::CreateEmptyMetadataObject 创建空元数据对象。
  6. 使用在上一步中获取的 IWMDMMetaData 接口,调用 IWMDMMetaData::AddItem ,将步骤 3) 中选择的格式代码 (添加到存储元数据属性。
  7. IWMDMStorage3 接口获取 IWMDMStorageControl3 接口。
  8. 调用 IWMDMStorageControl3::Insert3 以在所选存储中插入新的播放列表文件。 此文件包含你在步骤 5 中创建并传递给 Insert3IWMDMMetaData 接口表示的元数据。 方法返回播放列表文件的 IWMDMStorage 接口;可以查询 IWMDMStorage4 接口。
  9. 调用 IWMDMStorage4::SetReferences 以创建对播放列表中媒体文件的 IWMDMStorage 接口的引用。

有关示例代码,请参阅 示例桌面应用程序中的 _OnCreatePlaylist 函数。

注意

Microsoft 提供的 MTP 服务提供程序使应用程序能够在元数据中设置引用。 若要实现播放列表,应用程序必须与 MTP 设备通信,或使用可以处理抽象对象的自定义服务提供程序。 CE 服务提供程序处理播放列表和专辑对象。

 

将文件写入设备