2015-09-15 3 views
-1

Я знаю, что есть дюжина вопросов, подобных этому, и я посмотрел на более популярные, но мне не повезло в том, чтобы что-то выяснить.C# play embedded mp3 file

Я хочу создать C# * .exe, который будет воспроизводить звук при открытии, я решил, что было бы хорошо начать с проекта Console Application, но я понятия не имею, является ли это лучшим выбором.

Я добавил файл file.mp3 в конструктор ресурсов в разделе «Другие» и установил его действие сборки на «Встроенный ресурс».

Оттуда я увидел предложение о WMPLib, к которому я не могу получить доступ в своем проекте - его нет ни в моем справочном диспетчере, ни «с использованием WMPLib»; (он вызывает ошибку «не удалось найти») или один о «System.Media.SoundPlayer.Play();» метод, но у меня возникли проблемы с его реализацией, потому что мой компилятор либо говорит, что для него требуется ссылка на объект, либо он не имеет перегрузки, потому что он принимает только 1 аргумент, если я делаю это как «System.Media.SoundPlayer.Play (« file. mp3 ");"

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Program p = new Program(); 
      p.Mum(); 
     } 
     void Mum() 
     { 
      System.Media.SoundPlayer.Play(); 
     } 
    } 
} 
+0

Вы должны фактически создать 'SoundPlayer' ...' Play() 'не статический метод ... Посмотрите на [MDSN документы] (https://msdn.microsoft. com/en-us/library/system.media.soundplayer% 28v = vs.110% 29.aspx) –

+0

Насколько я понимаю, вы добавили ссылку на эту библиотеку в своем проекте? – AgapwIesu

+0

Кроме того, ваш ressource должен быть передан в конструкторе SoundPlayer или вызовом Load(); метод. Вы не можете передать его в Play(); – Bgl86

ответ

1

Чтобы воспроизвести mp3-файл, вам необходимо будет добавить библиотеку медиаплееров Windows. 1. Добавьте ссылку на библиотеку WMP - в своем проводнике решений в рамках вашего проекта перейдите к ссылкам, щелкните правой кнопкой мыши и добавьте ссылку на WMP. Думаю, это будет в библиотеках COM. 2. Добавить «using WMPLib;» ваш код в верхней части, 3. Добавьте этот код, чтобы воспроизвести файл:

 WindowsMediaPlayer myplayer = new WindowsMediaPlayer(); 
     myplayer.URL = "mysound.mp3"; 
     myplayer.controls.play(); 

ума ты URL путь к файлу, который вы хотите воспроизвести. Если в нем есть обратные косые черты, вам придется «убежать» от них. Как это

myplayer.URL = "C:\\Users\\Public\\Music\\Sample Music\\Kalimba.mp3"; 
+0

Файл, который я хочу воспроизвести, встроен в проект, когда он должен быть просто «file.mp3», правильно? – mathgenius

+0

Сделайте снимок. В принципе, это должен быть URL-адрес, который для окон или консольных приложений - это путь к файлу. Для веб-приложений это может быть относительный URL-адрес. Если вы используете консольное приложение, то относительный путь, как и имя файла, может быть правильным, если файл находится в той же папке, что и приложение. – AgapwIesu

+0

Большое спасибо за подробное объяснение, но теперь я понимаю, что должен был упомянуть, что я пробовал это, но не только у меня нет «WMPLibrary» в библиотеках COM или где-либо еще, но набрав «using WMPLib»; генерирует ошибку «не удалось найти». – mathgenius