Sådan interagerer du med Windows Media Player i C #

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg leder efter en måde at interagere med en standalone fuldversion af Windows Media Player.

For det meste er jeg nødt til at kende vejen for det aktuelt spillede spor.


ITunes SDK gør dette virkelig nemt, men desværre er der virkelig ingen måde at gøre det med Windows Media Player, i hvert fald ikke i .Net (C #) uden nogen særlig brug af pinvoke, som jeg ikke er rigtig komfortabel med.


Tak


Bare for at rydde: Jeg ønsker ikke at indlejre en ny forekomst af Windows Media Player i min app, men i stedet kontrollere/læse den 'rigtige' fulde version af Windows Media Player, startet separat af brugeren

Bedste reference


Jeg havde denne https://social.msdn.microsoft.com/Forums/vstudio/daUS/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr i min bogmærker, men har IKKE testet det i alligevel. Bare en peger i den rigtige retning. Det er ikke noget officielt og vil kræve lidt gravning, men du skal få en ret simpel wrapper (som stadig vil bruge PInvoke under hætten - men du vil ikke se det) omkring Windows Media Player. [4]


Håber det hjælper.


Åh, jeg misforstod. Jeg troede, du talte om at kontrollere den igangværende Windows Media Player-forekomst. Hvis du selv er vært for Windows Media Player, så er WMPLib sikkert den bedste løsning.

Andre referencer 1


Tilføj blot en henvisning til wmp.dll (\ windows \ system32 \ wmp.dll)


using WMPLib;


Og så kan du instantiere en medieafspiller


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


Se Oprettelse af Windows Media Player Control programmatisk for mere information [5]

Andre referencer 2


For at fjerne Windows Media Player kan du bruge IWMPRemoteMediaServices-grænsefladen til at styre den stand-alone Windows Media Player. Og du skal kunne læse alle de oplysninger, du vil have, som titel eller filnavn fra din WMP-afspillerobjekt. Desværre er der ingen C # smaple kode i SDK inkluderet. Du kan hente filerne herfra: http://d.hatena.ne.jp/punidama/20080227 Se efter filen WmpRemote.zip
Oprindeligt er det her: http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx[6][[77]]


Derefter skal du kaste til WindowsMediaPlayer-objektet:
RemotedWindowsMediaPlayer rm=ny RemotedWindowsMediaPlayer ();
WMPLib.WindowsMediaPlayer myPlayer=this.GetOcx () som WMPLib.WindowsMediaPlayer;


og der går du ..

Andre referencer 3


Den bedste information jeg har set på at interagere med Windows Media Player er denne artikel skrevet af Stephen Toub. [8]


Han lister en hel masse forskellige måder at spille dvr-ms filer på (det betyder ikke rigtig noget hvilket format de er til dette). Den bit, der muligvis er interessant for dig, handler om at bruge en Media Player ActiveX Control, som du kan tilføj til værktøjskassen til Visual Studio ved at højreklikke og tilføje Windows Media Player ActiveX COM Control. Du kan derefter integrere afspilleren i din app og få adgang til forskellige egenskaber ved Media Player, som url:


WMPplayer.URL = stringPathToFile;


Denne løsning er muligvis ikke, hvad du vil, fordi det starter en ny forekomst af Media Player (så vidt jeg ved), men det kan vise dig i den rigtige retning.