2010-10-31 9 views
5

Estoy tratando de jugar L1.wav que está en mi carpeta de recursos. Anteriormente saqué imágenes del archivo de recursos con la línea btc.Properties.Resources.noImg, que funcionó perfectamente, pero si intento hacer lo mismo con el archivo wav, obtengo un '... no contiene una definición para L1. Está allí, funciona bien si hago doble clic en él. ¿Cómo hago para que funcione?tratando de reproducir el archivo .wav que está en la carpeta de Recursos, está ahí pero el estudio visual dice que no es así.

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

Thanks.

Respuesta

5

La propiedad SoundLocation requiere una cadena que contiene una ruta de archivo o una URL. Sin embargo, el recurso que agregó se devuelve como un flujo si era un archivo .wav. Debería haber recibido un mensaje de error de compilación, diciendo que no puede convertir un UnmanagedMemoryStream en una cadena.

Este código ha funcionado bien en mi máquina:

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

Lo BTC significa en su código fuente es bastante misterioso y posiblemente la fuente real del mensaje de error del compilador que usted ha citado.

+0

btc es el nombre del proyecto. Intenté esto y sigo recibiendo el mismo error, que es que el archivo de recursos no contiene una definición para L1, que es el archivo wav. Muy raro. – flavour404

+0

¿Por qué está prefijando el nombre del proyecto? ¿Dónde vive realmente el recurso? ¿Lo has agregado al proyecto correcto? –

+0

el nombre del proyecto no es necesario y obtengo el mismo error si no lo incluyo y hago lo que hice y simplemente escribo Propiedades.Recursos.L1. Y sí, lo he agregado al proyecto correcto. Como ya he dicho, he agregado archivos jpg a la carpeta de recursos y no tengo problemas para acceder a ellos exactamente de la misma manera. – flavour404

0

Puede hacer algo como esto

jugador System.Media.SoundPlayer = new System.Media.SoundPlayer (@ "ubicación de la file.wav"); player.Play();

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

Con simplicidad ...

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

Es tan simple como eso.

Cuestiones relacionadas