2017-06-05 3 views
-1

Mediaplayer ne fonctionnait pas pour moi, donc je suis passé à un projet de test simple (C# Console App). J'ajouté mon fichier .mp3 au projet comme celui-ci:C# Mediaplayer ne lit pas le fichier mp3 à partir des ressources

  1. Faites un clic droit nom du projet (test) dans l'explorateur de solution
  2. ressources Ajouter un dossier
  3. cliquez droit sur le dossier des ressources dans l'explorateur de solution
  4. Ajouter ma warn.mp3 file
  5. left cliquez sur le fichier warn.mp3
  6. Modification de l'action de construction en ressource dans la fenêtre des propriétés.

Malheureusement, ce code ne fonctionne pas:

namespace test 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      MediaPlayer player = new MediaPlayer(); 
      player.Open(new Uri("resources/warn.mp3", UriKind.Relative)); 
      player.Play(); 
      Console.ReadKey(); 
     } 
    } 
} 

Cependant, celui-ci fait:

namespace test 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      MediaPlayer player = new MediaPlayer(); 
      player.Open(new Uri("C:\\Users\\Krepsy3\\Documents\\Programs\\OOP\\test\\test\\resources\\warn.mp3", UriKind.Absolute)); 
      player.Play(); 
      Console.ReadKey(); 
     } 
    } 
} 

Toute idée de ce qui ne va pas?

+0

Dupliqué, btw MediaPlayer n'autorise pas les ressources embarquées https://stackoverflow.com/questions/3728181/how-would-i-use-a-pack-uri-resource- with-media-player – bradbury9

Répondre

0

Vous ne pouvez pas utiliser MediaPlayer d'une ressource exe/dll interne. Vous devriez choisir un autre composant du lecteur ou l'écrire sur le disque. Si vous pouvez choisir un autre joueur, ressemble à System.Media.SoundPlayer pourrait faire l'affaire. Recherche de débordement de pile Play wav/mp3 from memory il devrait donner quelques résultats

0

Qu'en est-ce:

namespace test 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      MediaPlayer player = new MediaPlayer(); 
      player.Open(new Uri(System.Environment.CurrentDirectory + "\resources\warn.mp3", UriKind.Relative)); 
      player.Play(); 
      Console.ReadKey(); 
     } 
    } 
} 
+0

Eh bien ça n'aide pas. Je ne veux pas inclure le fichier sonore de manière extra-orale dans le programme, je veux qu'il soit "compressé", comme si j'ajoutais un fichier image de la même manière, je pouvais alors l'afficher dans le contrôle Image, sans avoir pour avoir le fichier sur l'ordinateur plus (après compilation sur une autre machine) –

+0

Ensuite, ajoutez-le à votre projet. Clic droit Ajouter un fichier et l'ajouter. Il sera copié dans votre dossier bin. – NicoRiff

+0

Si je comprends bien, "emballé" signifie ressource intégrée. AFAIK MediaPlayer ne le permet pas. – bradbury9