Нужен способ получить текущую воспроизводимую песню из Zune и Windows Media Player с Python

Моя прикладная программа извлекает текущую воспроизводимую песню из множества музыкальных проигрывателей. Однако я'У меня большие проблемы с реализацией Zune и Windows Media Player.

мы много гуглили на эту тему, к сожалению этотолько смущает меня все больше и больше.

Что я обычно делаю для других приложений:

Итерация по всем открытым окнам каждые 4 секундыПолучить заголовок всех оконПроверьте заголовок для шаблона (т.е.)" - Spotify "Если оно's там, отрегулируйте заголовок для вывода.

WMP Нет текущей воспроизводимой песни в заголовке.

Zune делает, но этовращается каждые несколько секунд между названием, альбомом и исполнителем. Который крайне ненадежен для отслеживания с моим текущим методом, хотя это возможно.

Windows Media PlayerI '

Мы также пытались использовать компонент COM для Windows Media Player.

import win32com.client
wmp = win32com.client.gencache.EnsureDispatch('WMPlayer.OCX')

# some function I don't have here, it retrieves the current playing song
# and other data

Большая проблема в том, что он требует, чтобы вы запустили WMP программно, что было бы крайне недружественным для пользователя

Итак, что я нашел?Этот ТАК пост перенаправляет на WMP.dll. Но насколько ячитай, у него та же проблема, что и у COM, его нужно запускать программно. Если нет, мне бы очень хотелось узнать, как работать с этой DLL в Python.

Было бы другое, немного менее хакерское решение: написать плагин для WMP, позволить моим пользователям загружать этот плагин и получать данные из этого плагина. Я'Я бы не хотел идти туда, так как у меня нет опыта работы с какими-либо языками Си, и мне не хочется копаться в документации по плагинам для этого.

Zune

Метод будет состоять в том, чтобы циклически проходить три состояния заголовка, определять, в каком состоянии он находитсяв настоящее время в и найти положение двух других.

IE: первые 5 секунд заголовок: Super_song следующие 5 секунд заголовок: By Power_artist следующие 5 секунд заголовок: Good_album (date)

Таким образом, я мог определить, когда заголовок альбома, сделав регулярное выражение для даты (которая всегда есть), а затем найти название и исполнителя, подождав несколько секунд.

Это, очевидно, не очень хорошее решение, так какЯ возьму время, и этотоже не очень надежно (например, если название песни содержит дату)

Следующая проблема заключается в том, что этоТакже не согласен, иногда название остается Zune в течение нескольких минут. Понятия не имею почему.

Итак, перейдите к следующему методу.

Там'Это приложение называетсяZuneNowPlaying, Это "как-то» получает текущую воспроизводимую песню из Zune и помещает ее в реестр, эта вещь не работает с моим неаккуратным методом заголовка, так как она изменяет реестр в момент изменения песни. Немедленно.

Это решение, которое я использовал в рабочей версии моей программы, но многие пользователи сообщали, что она просто неничего не случилось. И я проверил программу, и она нет надежно менять реестр все время. Я нене знаю почему, я нене знаю, как это исправить. Таким образом, это решение также утилизируется.

Является ли тот факт, что он использует имя "MsnMsgrUIManager»# 000000" > в результате чего программное обеспечение zune отправляет ему информацию о том, какая песня воспроизводится? Есть ли способ получить эту информацию без такого взлома?

Это можно найти в обсуждении приложения Zune Now Playing. К сожалению, источник недоступен, по крайней мере, я могуне могу найти это. Кто-нибудь получил больше по этому поводу?

Третий метод, о котором я слышал, был снова, dll. ZuneShell.dll это 'называется. Я неНе помню, где я читал об этом, и я не могу найти его через Google, так как все результаты "Является ли ZuneShell.dll вирусом? "

Еще раз, я сталкиваюсь с проблемой, которую я бы нене знаю, как работать с этим дажеЕСЛИ У меня есть документация, черт возьми, если этоДаже то, что я искал.

Альтернативные направления, возможно, посмотреть в

Просматривая эту тему, явидел людей, говорящих о получении данных непосредственно из GUI 's. Я'я не уверен, насколько правдиво, возможно или даже насколько правильно я помню это, но если этоВозможно ли, кто-то может перенаправить меня на это?

Всё остальное, правда.

Ответы на вопрос(2)

Ваш ответ на вопрос