2010-10-31 9 views
5

Sto provando a riprodurre L1.wav che si trova nella mia cartella delle risorse. Precedentemente ho tirato le immagini dal file delle risorse usando la linea btc.Properties.Resources.noImg che funzionava perfettamente ma se provo a fare lo stesso per il file wav ottengo un '... non contiene una definizione per L1. È lì, funziona bene se faccio doppio clic su di esso. Come posso farlo funzionare?cercando di riprodurre il file .wav che si trova nella cartella delle risorse, è lì ma lo studio visivo sais non lo è!

System.Media.SoundPlayer player = new System.Media.SoundPlayer(); 
player.SoundLocation = btc.Properties.Resources.L1; 
player.play(); 

Grazie.

risposta

5

La proprietà SoundLocation richiede una stringa che contiene un percorso file o un URL. La risorsa che hai aggiunto viene comunque restituita come Stream se si trattava di un file .wav. Dovresti aver ricevuto un messaggio di errore compilato, dicendo che non è possibile convertire un UnmanagedMemoryStream in una stringa.

Questo codice ha funzionato bene sulla mia macchina:

 System.Media.SoundPlayer player = new System.Media.SoundPlayer(); 
     player.Stream = Properties.Resources.test; 
     player.Play(); 

Cosa BTC significa nel codice sorgente è abbastanza misterioso e forse la vera fonte del messaggio di errore del compilatore che hai citato.

+0

btc è il nome del progetto. Ho provato questo e sto ancora ottenendo lo stesso errore che è che il file delle risorse non contiene una definizione per L1 che è il file wav. Molto strano. – flavour404

+0

Perché stai anteponendo il nome del progetto? Dove vive effettivamente la risorsa? L'hai aggiunto al progetto corretto? –

+0

il nome del progetto non è necessario e ottengo lo stesso errore se non lo includo e faccio come hai fatto e digito Properties.Resources.L1. E sì, l'ho aggiunto al progetto corretto. Come ho già detto, ho aggiunto file jpg alla cartella delle risorse e non ho problemi ad accedervi esattamente nello stesso modo. – flavour404

0

Si può fare qualcosa di simile

giocatore System.Media.SoundPlayer = new System.Media.SoundPlayer (@ "posizione del file.wav"); player.Play();

0
Stream audio = <assembly>.Properties.Resources.ResourceManager.GetStream("notify.wav"); 
     SoundPlayer player = new SoundPlayer(audio); 
     player.Play(); 

Con semplicità ...

0
(new SoundPlayer(Properties.Resources.L1)).Play(); 

sua semplice come questo.

Problemi correlati