Domanda

Sto cercando un modo per interagire con una versione completa autonoma di Windows Media Player.
Principalmente ho bisogno di conoscere il percorso della traccia attualmente riprodotta.

L'SDK di iTunes lo rende davvero semplice, ma sfortunatamente non c'è davvero alcun modo per farlo con Windows Media Player, almeno non in .Net(C#) senza un uso intenso di pinvoke, con cui non mi sento molto a mio agio.

Grazie

Giusto per chiarire:Non voglio incorporare una nuova istanza di Windows Media Player nella mia app, ma invece controllare/leggere la versione completa "reale" di Windows Media Player, avviata separatamente dall'utente

È stato utile?

Soluzione

Ho avuto questo https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr nei miei segnalibri ma NON l'ho testato comunque.Solo un indicatore nella giusta direzione.Non è niente di ufficiale e richiederà un po' di ricerca, ma dovresti procurarti un wrapper abbastanza semplice (che utilizzerà comunque PInvoke dietro le quinte, ma non lo vedrai) per Windows Media Player.

Spero che aiuti.

Oh, ho capito male.Pensavo stessi parlando del controllo dell'istanza di Windows Media Player attualmente in esecuzione.Se ospiti tu stesso Windows Media Player, WMPLib è sicuramente la soluzione migliore.

Altri suggerimenti

Basta aggiungere un riferimento a wmp.dll (\windows\system32\wmp.dll)

using WMPLib;

E poi puoi istanziare un lettore multimediale

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

Vedere Creazione del controllo di Windows Media Player a livello di codice per maggiori informazioni

Per la gestione remota di Windows Media Player, è possibile utilizzare l'interfaccia IWMPRemoteMediaServices per controllare Windows Media Player autonomo.E dovresti essere in grado di leggere tutte le informazioni che desideri come titolo o nome file dal tuo oggetto lettore WMP.Sfortunatamente non è incluso alcun codice smaple C# nell'SDK.Puoi ottenere i file da qui: http://d.hatena.ne.jp/punidama/20080227 Cerca il file wmpremote.zip originariamente da qui: http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx

Quindi devi eseguire il cast sull'oggetto WindowsMediaPlayer:RemotedWindowsMediaPlayer rm = nuovo RemotedWindowsMediaPlayer();WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx() come WMPLib.WindowsMediaPlayer;

ed ecco qua..

Le migliori informazioni che ho visto sull'interazione con Windows Media Player sono queste articolo scritto da Stephen Toub.

Elenca un sacco di modi diversi per riprodurre file dvr-ms (non importa però quale formato siano per questo).La parte che potrebbe interessarti riguarda l'utilizzo di un controllo ActiveX di Media Player, che puoi aggiungere alla casella degli strumenti di Visual Studio facendo clic con il pulsante destro del mouse e aggiungendo il controllo COM ActiveX di Windows Media Player.Puoi quindi incorporare il lettore nella tua app e accedere a varie proprietà di Media Player, come l'URL:

WMPplayer.URL = stringPathToFile;

Questa soluzione potrebbe non essere quella che desideri perché sta avviando una nuova istanza di Media Player (per quanto ne so), tuttavia potrebbe indirizzarti nella giusta direzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top