2

我有 Windows Vista MCML 应用程序,我需要找出正在播放的文件的当前名称。

Media Center SDK 暗示使用 MediaMetadata["Title"] 来获取此信息,不幸的是,这不适用于播放列表 (.wpl) 文件,因为没有获取播放列表中位置的方法。

4

2 回答 2

1

事实证明,这并非易事

有 4 个选项。

  1. 永远不要使用播放列表,在这种情况下 MediaMetadata["Title"] 就足够了。
  2. 检查 ehshell.exe 中的远程文件句柄。
  3. 在ehshell.exe中注入一个远程线程,建立通信并使用反射读取它。
  4. 编写一个 DirectShow 过滤器并与之通信。

更新:这在Windows 7中已修复。目前还不清楚它是否会重新移植到 Vista MCE。

第二次更新:看起来微软在最近的修补程序中改变了 MediaMetadata["Title"] 的行为,它现在返回不带扩展名的文件名和播放列表名称。

于 2008-10-13T22:00:44.213 回答
0

你有没有尝试过:

MediaContext.GetProperty(TrackTitle)

我还看到了在媒体显示布局文件的标记中指定一个元素的示例,例如:

<music-title duration = "2000" x="69" y="29" width="187" height="20"/>

祝你好运!

于 2008-10-13T13:46:12.887 回答