Как взаимодействовать с Windows Media Player в C # - PullRequest
9 голосов
/ 11 сентября 2008

Я ищу способ взаимодействия с автономной полной версией Windows Media Player.
В основном мне нужно знать путь к текущей воспроизводимой дорожке.

iTunes SDK делает это действительно простым, но, к сожалению, на самом деле нет никакого способа сделать это с Windows Media Player, по крайней мере, в .Net (C #) без какого-либо интенсивного использования пинвока, что мне не очень удобно .

Спасибо

Просто для ясности: я не хочу встраивать новый экземпляр проигрывателя Windows Media в свое приложение, но вместо этого управляю / читаю «настоящую» полную версию проигрывателя Windows Media, запущенную пользователем отдельно

Ответы [ 4 ]

7 голосов
/ 11 сентября 2008

Просто добавьте ссылку на wmp.dll (\ windows \ system32 \ wmp.dll)

using WMPLib;

И тогда вы можете создать экземпляр медиаплеера

var Player = new WindowsMediaPlayer();
// Load a playlist or file and then get the title 
var title = Player.controls.currentItem.name;

Подробнее см. Создание элемента управления проигрывателя Windows Media

5 голосов
/ 19 апреля 2009

Для удаленного взаимодействия с проигрывателем Windows Media вы можете использовать интерфейс IWMPRemoteMediaServices для управления автономным проигрывателем Windows Media. И вы должны быть в состоянии прочитать всю информацию, которую вы хотите, например, заголовок или имя файла из вашего объекта проигрывателя WMP. К сожалению, в комплекте SDK нет кода на C #. Вы можете получить файлы здесь: http://d.hatena.ne.jp/punidama/20080227 Найдите файл WmpRemote.zip Первоначально это отсюда: http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx

Затем необходимо привести к объекту WindowsMediaPlayer: RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer (); WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx () as WMPLib.WindowsMediaPlayer;

и вот, пожалуйста.

2 голосов
/ 11 сентября 2008

У меня было это https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr в моих закладках, но я НЕ проверял его в любом случае. Просто указатель в правильном направлении. В этом нет ничего официального и потребуется немного копаться, но вы должны получить довольно простую оболочку (которая все еще будет использовать PInvoke под капотом - но вы ее не увидите) вокруг Windows Media Player.

Надеюсь, это поможет.

О, я неправильно понял. Я думал, что вы говорите об управлении текущим экземпляром Windows Media Player. Если вы сами используете Windows Media Player, то WMPLib, безусловно, является лучшим решением.

1 голос
/ 11 сентября 2008

Лучшая информация о взаимодействии с проигрывателем Windows Media, которую я видел, - это статья , написанная Стивеном Тубом.

Он перечисляет множество различных способов воспроизведения файлов DVR-MS (хотя на самом деле не имеет значения, в каком формате они это делают). Немного интересного, возможно, представляет использование элемента управления ActiveX Media Player, который можно добавить в набор инструментов Visual Studio, щелкнув правой кнопкой мыши и добавив элемент управления COM ActiveX проигрывателя Windows Media. Затем вы можете встроить проигрыватель в свое приложение и получить доступ к различным свойствам Media Player, таким как URL:

WMPplayer.URL = stringPathToFile;

Возможно, это не то решение, которое вам нужно, потому что оно запускает новый экземпляр Media Player (насколько я знаю), однако оно может указывать вам правильное направление.

...