2016-04-07 10 views
1

Ich habe eine eingebettete Ressourcendatei (MP3 um genau zu sein), die einen kurzen Boop spielt. Ich wollte es für den einfachen Transport der Datei, da ich viel mehr davon habe, die ich hinzufügen möchte.AXWindowsMediaPlayer findet keine eingebettete Ressource MP3

Wenn ich versuche, es zu spielen, sagt WMP nur, dass es die Datei nicht finden kann. Ich verwende axWindowsMediaPlayer1.URL = @"ultraelecguitar.Properties.Resources.pitchedbeep";, um darauf zuzugreifen. Es wird im Ressourcenmanager hinzugefügt und als eingebettete Ressource markiert. Wenn ich mein Programm mit der Datei im Verzeichnis starte, funktioniert es einwandfrei. Wenn nicht, funktioniert es überhaupt nicht.

Antwort

0

Wenn Sie die Ressource als temporäre Datei speichern, können Sie den Pfad als URL angeben.

static void Main(string[] args) 
    { 
     var wmp = new WMPLib.WindowsMediaPlayer(); 
     wmp.URL = CreateTempFileFromResource("ConsoleApplication1.mp3.somefile.mp3"); 
     Console.ReadKey(); 
    } 
    private static string CreateTempFileFromResource(string resourceName) 
    { 
     var tempFilePath = Path.GetTempFileName() + Path.GetExtension(resourceName); 
     using (var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) 
     using (var tempFileStream = new FileStream(tempFilePath, FileMode.Create)) 
     { 
      resourceStream.CopyTo(tempFileStream); 
     } 
     return tempFilePath; 
    } 
Verwandte Themen