Question

Je recherche un moyen d'interagir avec une version complète autonome de Windows Media Player.
La plupart du temps, j'ai besoin de connaître le chemin de la piste actuellement jouée.

Le SDK iTunes rend cela très simple, mais malheureusement, il n'y a vraiment aucun moyen de le faire avec Windows Media Player, du moins pas en .Net (C#) sans une utilisation intensive de pinvoke, avec lequel je ne suis pas vraiment à l'aise.

Merci

Juste pour clarifier :Je ne souhaite pas intégrer une nouvelle instance de Windows Media Player dans mon application, mais plutôt contrôler/lire la "vraie" version complète de Windows Media Player, démarrée séparément par l'utilisateur.

Était-ce utile?

La solution

j'ai eu ça https://social.msdn.microsoft.com/Forums/vstudio/en-US/dbd43d7e-f3a6-4087-be06-df17e76b635d/windows-media-player-remoting-in-c?forum=clr dans mes favoris mais je ne l'ai PAS testé de toute façon.Juste un indicateur dans la bonne direction.Cela n'a rien d'officiel et nécessitera un peu de recherche, mais vous devriez obtenir un wrapper assez simple (qui utilisera toujours PInvoke sous le capot - mais vous ne le verrez pas) autour de Windows Media Player.

J'espère que cela pourra aider.

Oh, j'ai mal compris.Je pensais que vous parliez du contrôle de l'instance Windows Media Player en cours d'exécution.Si vous hébergez vous-même Windows Media Player, WMPLib est certainement la meilleure solution.

Autres conseils

Ajoutez simplement une référence à wmp.dll (\windows\system32\wmp.dll)

using WMPLib;

Et puis vous pouvez instancier un lecteur multimédia

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

Voir Création du contrôle du lecteur Windows Media par programme pour plus d'informations

Pour accéder à distance au Lecteur Windows Media, vous pouvez utiliser l'interface IWMPRemoteMediaServices pour contrôler le Lecteur Windows Media autonome.Et vous devriez pouvoir lire toutes les informations que vous souhaitez, comme le titre ou le nom du fichier, à partir de votre objet lecteur WMP.Malheureusement, il n'y a pas de code smaple C# dans le SDK inclus.Vous pouvez récupérer les fichiers ici : http://d.hatena.ne.jp/punidama/20080227 Recherchez le fichier wmpremote.zip à l'origine, c'est à partir d'ici: http://blogs.msdn.com/ericgu/archive/2005/06/22/431783.aspx

Ensuite, vous devez diffuser vers l'objet WindowsMediaPlayer :RemotedWindowsMediaPlayer rm = new RemotedWindowsMediaPlayer();WMPLib.WindowsMediaPlayer myPlayer = this.GetOcx() as WMPLib.WindowsMediaPlayer ;

et voilà..

La meilleure information que j'ai vue sur l'interaction avec Windows Media Player est la suivante article écrit par Stéphane Toub.

Il répertorie toute une série de façons différentes de lire des fichiers DVR-MS (le format n'a pas vraiment d'importance).Ce qui pourrait vous intéresser concerne l'utilisation d'un contrôle ActiveX du lecteur Media, que vous pouvez ajouter à la boîte à outils de Visual Studio en cliquant avec le bouton droit et en ajoutant le contrôle COM ActiveX du lecteur Windows Media.Vous pouvez ensuite intégrer le lecteur dans votre application et accéder à diverses propriétés de Media Player, comme l'URL :

WMPplayer.URL = stringPathToFile;

Cette solution n'est peut-être pas celle que vous souhaitez car elle démarre une nouvelle instance de Media Player (pour autant que je sache), mais elle pourrait vous orienter dans la bonne direction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top