Comment lire les fichiers mp3 en C #?
Je suis en train de lire un fichier MP3 en C# à l'aide de ce guide:
http://www.crowsprogramming.com/archives/58
Et je suis en train de faire tout ce qui est inscrit, mais je ne peux toujours pas jouer de la musique dans mon programme C#. Quelqu'un peut me dire ce que je fais mal?
static void Main(string[] args)
{
WMPLib.WindowsMediaPlayer a = new WMPLib.WindowsMediaPlayer();
a.URL = "song.mp3";
a.controls.play();
}
Le fichier de musique "Song" est dans le dossier bin.
source d'informationauteur Waffles
Vous devez vous connecter pour publier un commentaire.
Je n'ai pas utilisé le Lecteur Windows Media COM objet, mais voici un lien à une méthode alternative. (Je ne suis pas l'auteur.) Il utilise pinvoke appeler winmm.dll pour lire le MP3. Je l'ai testé sur Windows Server 2008 et il a très bien fonctionné.
Voici un exemple de classe à l'aide de la forme de code le lien.
tout ce que vous devez faire est d'ajouter une référence à la Fenêtre Media Player composant COM. Vous devez ajouter la référence au fichier wmp.dll, que vous pouvez trouver dans le répertoire System32.
Je ne suis pas sûr que c'est toujours pertinente, mais quand je l'ai essayé, il n'a travaillé que lorsque le code courait pas dans le thread principal, c'est à dire,
this.InvokeRequired == false
Donc, je voudrais des conseils que vous essayez quelque chose comme:
player.controls.play()
n'est pas nécessaire, car le lecteur est réglé à auto play.Je ne suis pas sûr pourquoi le thread principal ne sera pas jouer correctement, mais j'espère que cela aidera.
vous pouvez essayer de supprimer votre code à partir de la "main" de l'événement et de le mettre en "form_load" ou "button_click" ou quelque chose comme ça. cause de la façon dont elle regarde, elle devrait fonctionner. aussi, comme Robert Seder suggéré, vous pouvez essayer d'écrire le chemin d'accès complet pour le fichier mp3.
Il ya un couple de choses que je voudrais essayer:
1) Entièrement qualifier le chemin .fichier mp3, juste au cas où.
2) Essayer une.Ctlcontrols.play(); au lieu de cela.
Aussi, je suis presque certain que c'est un Windows (contrôle ActiveX) que vous essayez de charger. Il peut avoir besoin d'un windows contexte afin de charger et de travail. Je suis certains qu'il y en est une autre manière de jouer à un .mp3, parce que j'ai utilisé avant, mais je n'arrivais pas à trouver le code. Il peut avoir été une partie du SDK de DirectX. Espérons que cela aide.
La manière la plus simple, besoin de code suivant:
1.Dans le premier ajouter
System.Runtime.InteropServices
namespase.2.Dans la création de la classe:
3. Ajouter un attribut dans la méthode main:
Puis créez joueur de la méthode, de sorte que:
J'ai eu le même problème et je l'ai résolu en définissant le joueur comme Statiquepar exemple: