如何在Vista Media Center中获取当前正在播放的文件的文件名?

时间:2020-03-06 15:03:37  来源:igfitidea点击:

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

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

解决方案

你有没有尝试过:

MediaContext.GetProperty(TrackTitle)

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

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

祝你好运!

事实证明,这不容易做到。

有4个选项。

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

更新:Windows 7中已修复此问题。目前尚不清楚是否将其重新移植到Vista MCE。

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