Как взаимодействовать с Windows Media Player В C#

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

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

спасибо

просто чтобы прояснить: я не хочу вставлять новый экземпляр Windows Media Player в моем приложении, но вместо управления / чтения "реальной" полной версии Windows Media Player, запущенной отдельно пользователем

4 ответов


У меня было это 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. Если вы размещаете Windows Media Player самостоятельно, то WMPLib, безусловно, лучшее решение.


просто добавьте ссылку на 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 программным способом для получения дополнительной информации


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

затем вы должны привести к объекту WindowsMediaPlayer: RemotedWindowsMediaPlayer rm = новый RemotedWindowsMediaPlayer(); WMPLib.WindowsMediaPlayer myPlayer = это.GetOcx () как WMPLib.WindowsMediaPlayer;

и там вы идете..


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

он перечисляет целую кучу разных способов воспроизведения файлов dvr-ms (На самом деле не имеет значения, какой формат они для этого). Бит, который, возможно, представляет интерес для вас об использовании элемента управления ActiveX Media Player, который можно добавить в Visual Studio toolbox, щелкнув правой кнопкой мыши и добавив элемент управления Windows Media Player ActiveX COM. Вы можете затем вставьте плеер в приложение и получите доступ к различным свойствам медиаплеера, таким как url:

WMPplayer.URL = stringPathToFile;

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