Como reproduzir arquivos de áudio WAV de Recursos?

Como posso reproduzir um arquivo de áudio WAV nos resources do meu projeto? Meu projeto é um aplicativo do Windows Forms em C #.

Stream str = Properties.Resources.mySoundFile; RecordPlayer rp = new RecordPlayer(); rp.Open(new WaveReader(str)); rp.Play(); 

De como reproduzir arquivos de áudio WAV de resources em C # .

Como mySoundFile é um Stream , você pode aproveitar o construtor sobrecarregado do SoundPlayer , que aceita um object Stream :

 System.IO.Stream str = Properties.Resources.mySoundFile; System.Media.SoundPlayer snd = new System.Media.SoundPlayer(str); snd.Play(); 

Documentação de class do SoundPlayer (MSDN)

a) OK, primeiro adicione o arquivo de áudio (.wav) ao recurso do projeto.

  1. Abra “Solution Explorer” da barra de ferramentas do menu (“VIEW”) ou simplesmente pressione Ctrl + Alt + L.
  2. Clique na lista suspensa de “Propriedades”.
  3. Em seguida, selecione “Resource.resx” e pressione enter.

recurso de projeto aberto

  1. Agora selecione “Audio” na lista de combobox.

adicionar arquivos de áudio ao recurso

  1. Em seguida, clique em “Adicionar recurso”, escolha arquivos de áudio (.wav) e clique em “Abrir”.

navegando por arquivos de áudio

  1. Selecione o (s) arquivo (s) de áudio e altere as propriedades de “Persistência” para “Incorporado no .resx”.

incorporando arquivos de áudio ao recurso

b) Agora, apenas escreva este código para reproduzir o áudio.

Neste código, estou reproduzindo áudio no evento de carregamento de formulário.

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Media; // at first you've to import this package to access SoundPlayer namespace WindowsFormsApplication1 { public partial class login : Form { public login() { InitializeComponent(); } private void login_Load(object sender, EventArgs e) { playaudio(); // calling the function } private void playaudio() // defining the function { SoundPlayer audio = new SoundPlayer(WindowsFormsApplication1.Properties.Resources.Connect); // here WindowsFormsApplication1 is the namespace and Connect is the audio file name audio.Play(); } } } 

É isso aí.
Tudo pronto, agora execute o projeto (pressione f5) e aproveite seu som.
Muito bem sucedida. 🙂

Você precisa ser cauteloso sobre o coletor de lixo liberando memory usada pelo som enquanto o som ainda está sendo reproduzido. Enquanto isso raramente acontece, quando isso acontece, você estará apenas jogando alguma memory aleatória. Há uma solução para isso, completa com o código-fonte para obter o que você deseja aqui: http://msdn.microsoft.com/en-us/library/dd743680(VS.85).aspx

Role até o final, na seção “Conteúdo da Comunidade”.

Quando você tiver que adicionar sons ao seu projeto, você o fará reproduzindo o (s) arquivo (s) .wav . Então você tem que adicionar o (s) arquivo (s) .wav como este.

  using System.Media; //write this at the top of the code SoundPlayer my_wave_file = new SoundPlayer("F:/SOund wave file/airplanefly.wav"); my_wave_file.PlaySync(); // PlaySync means that once sound start then no other activity if form will occur untill sound goes to finish 

Lembre-se que você tem que escrever o caminho do arquivo com formato de barras ( / ), não use barras invertidas ( \ ) ao dar um caminho para o arquivo, senão você receberá um erro.

Observe também, se você quer que outras coisas aconteçam enquanto o som está tocando, você pode mudar my_wave_file.PlaySync(); com my_wave_file.PlayAsync(); .