大家好我想尝试将当前的媒体名称/艺术家整合到我的python应用程序中,但我似乎无法让它发挥作用。
我对iTunes做了同样的事情几乎没有任何问题,但由于某些原因我无法设法获得正确的Windows媒体播放器实例
wmp = win32com.client.gencache.EnsureDispatch("WMPlayer.OCX")
让我获得一个有效的wmp实例,但是当我尝试使用
获取当前媒体时wmp.currentMedia
它什么也没有返回,并获得如下的音量:
wmp.settings.volume
返回的音量与我实际打开的Windows媒体播放器音量不同。
有什么我不知道的吗?我也尝试过使用WMPlayer.OCX.7,但是如果有人能帮助我的话,那就不会有用了。
答案 0 :(得分:1)
Windows Media Player支持多个可运行的实例。以您正在进行的方式创建OCX会创建播放器的单独实例,当然,它没有加载任何媒体。
查找“主”实例的常用方法是查看运行对象表,但Windows Media Player不会这样做。相反,您需要使用"remote" mode。
这并没有很好的记录,但有一个VB.Net sample here,从C# sample here翻译而来。 Windows SDK中的{+ 1}}目录中有C ++示例。
不幸的是,这些都不在Python中。但希望现有的样品可以帮助你。
答案 1 :(得分:0)
也许尝试使用类似GetObject(None, "WMPlayer.OCX"))
EnsureDispatch
的内容?我认为EnsureDispatch
通常会生成一个单独的.exe实例。使用GetObject
应“锁定”当前实例并使其可用作对象。