2016-04-07 3 views
1

У меня есть встроенный файл ресурсов (точнее, MP3), который играет короткую хватку. Я хотел его для легкой транспортировки файла, так как у меня их намного больше, чем я хочу добавить.AXWindowsMediaPlayer не находит встроенный ресурс MP3

Когда я пытаюсь воспроизвести его, WMP просто говорит, что он не может найти файл. Я использую axWindowsMediaPlayer1.URL = @"ultraelecguitar.Properties.Resources.pitchedbeep"; для доступа к нему. Он добавляется в диспетчер ресурсов и помечен как встроенный ресурс. Когда я запускаю свою программу с файлом в каталоге, он работает нормально. Когда я этого не сделаю, это совсем не работает.

ответ

0

Если вы сохраняете ресурс в качестве временного файла, вы можете указать его путь как url.

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; 
    } 
Смежные вопросы